Trabalhar com Imagens em Arquivo PS | Java
Adicionar Imagem em Documento PS
A biblioteca Aspose.Page para Java oferece dois métodos para adicionar imagens a um documento PS:
- para imagens opacas;
- para imagens transparentes;
Isto foi feito porque o PostScript não suporta transparência, mas as imagens translúcidas podem ser renderizadas como um conjunto de pixels totalmente transparentes e totalmente opacos. Estas imagens são chamadas de máscaras.
Se quisermos ver a imagem translúcida no documento PS como máscara, que refletirá melhor a transparência da imagem, devemos realizar alguma verificação e pré-processamento dessa imagem. A verificação e o pré-processamento demoram tempo. Portanto, se alguém tiver a certeza de que a imagem é totalmente opaca, é melhor utilizar o primeiro método, pois poupa tempo de execução.
O segundo método reconhece se a imagem é totalmente opaca, totalmente transparente ou translúcida. Se for totalmente opaca, será adicionada como a imagem opaca no primeiro método; se for totalmente transparente, não será adicionada ao documento; se for a imagem translúcida, será adicionada como uma máscara de imagem PostScript.
No exemplo abaixo, demonstramos como adicionar uma imagem totalmente opaca. A adição de uma imagem transparente será demonstrada no artigo “Trabalhar com Transparência”.
Para adicionar uma imagem a um novo PsDocument com a biblioteca Aspose.Page para Java, neste exemplo, seguimos os seguintes passos:
- Crie um fluxo de saída para o ficheiro PS resultante.
- Crie o objeto PsSaveOptions com as opções padrão.
- Crie um PsDocument de 1 página com um fluxo de saída já criado e guarde as opções.
- Crie um novo estado gráfico.
- Crie java.awt.image.BufferedImage a partir do ficheiro de imagem.
- Crie a transformação necessária para a imagem.
- Adicione a imagem ao objeto PsDocument.
- Saia do estado gráfico atual para o nível superior.
- Feche a página.
- Guarde o documento.
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();
Veja como trabalhar com imagens em documentos PS em .NET.
O resultado da execução deste código é apresentado como
Pode descarregar exemplos e ficheiros de dados do GitHub.