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

Вы можете загрузить примеры и файлы данных с GitHub.