Работа с изображениями в PS-файле | Java
Добавить изображение в документ PS
Библиотека Aspose.Page для Java предлагает два метода добавления изображений в документ PS:
- для непрозрачных изображений;
- для прозрачных изображений;
Это было сделано потому, что PostScript не поддерживает прозрачность, однако полупрозрачные изображения можно визуализировать как набор полностью прозрачных и полностью непрозрачных пикселей. Такие изображения называются масками.
Если мы хотим видеть полупрозрачное изображение в документе PS как маску, которая будет лучше отражать прозрачность изображения, нам следует выполнить некоторую проверку и предварительную обработку такого изображения. Проверка и предварительная обработка требуют времени. Поэтому, если кто-то уверен, что изображение полностью непрозрачно, лучше использовать первый метод, поскольку он экономит время выполнения.
Второй метод определяет, является ли изображение полностью непрозрачным, полностью прозрачным или полупрозрачным. Если оно полностью непрозрачно, оно добавляется как непрозрачное изображение в первом методе. если оно полностью прозрачное, оно вообще не добавляется в документ, если это полупрозрачное изображение, оно добавляется как маска изображения PostScript.
В примере ниже мы демонстрируем, как добавить полностью непрозрачное изображение. Добавление прозрачного изображения будет показано в статье «Работа с прозрачностью».
Чтобы добавить изображение в новый PsDocument с помощью библиотеки Aspose.Page для Java в этом примере, мы выполняем следующие шаги:
- Создайте выходной поток для полученного PS-файла.
- Создайте объект PsSaveOptions с параметрами по умолчанию.
- Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
- Создайте новое графическое состояние.
- Создайте java.awt.image.BufferedImage из файла изображения.
- Создайте необходимое преобразование изображения.
- Добавьте изображение в объект PsDocument.
- Выход из текущего состояния графики на верхний уровень.
- Закройте страницу.
- Сохраните документ.
1//Create an output stream for PostScript document
2FileOutputStream outPsStream = new FileOutputStream(dataDir + "AddImage_outPS.ps");
3//Create save options with A4 size
4PsSaveOptions options = new PsSaveOptions();
5
6//Create new PS Document with the page opened
7PsDocument document = new PsDocument(outPsStream, options, false);
8
9
10document.writeGraphicsSave();
11document.translate(100, 100);
12
13//Create a BufferedImage object from image file
14BufferedImage image = ImageIO.read(new File(dataDir + "TestImage Format24bppRgb.jpg"));
15
16//Create image transform
17AffineTransform transform = new AffineTransform();
18transform.translate(35, 300);
19transform.scale(3, 3);
20transform.rotate(-45);
21
22//Add image to document
23document.drawImage(image, transform, null);
24
25document.writeGraphicsRestore();
26
27//Close current page
28document.closePage();
29//Save the document
30document.save();
См. работу с изображениями в документах PS в .NET.
Результат запуска этого кода выглядит так:
Вы можете загрузить примеры и файлы данных с GitHub.