Criando, Abrindo e Salvando Imagens
Criando Arquivos de Imagem
Aspose.PSD para Java permite aos desenvolvedores criar suas próprias imagens. Use o método Create estático exposto pela classe Image para criar novas imagens. Tudo o que você precisa fazer é fornecer o objeto apropriado de uma das classes do namespace ImageOptions para o formato de imagem de saída desejado. Para criar um arquivo de imagem, primeiro crie uma instância de uma das classes do namespace ImageOptions. Essas classes determinam o formato de imagem de saída. Abaixo estão algumas classes do namespace ImageOptions (observe que atualmente somente os formatos de arquivo PSD são suportados para criação):
PsdOptions define as opções para criar um arquivo PSD. Arquivos de imagem podem ser criados definindo um caminho de saída ou configurando um fluxo.
Criando Configurando o Caminho
Crie PsdOptions a partir do namespace ImageOptions e defina as várias propriedades. A propriedade mais importante a ser definida é a propriedade Source. Esta propriedade especifica onde os dados da imagem estão localizados (em um arquivo ou em um fluxo). No exemplo abaixo, a fonte é um arquivo. Após definir as propriedades, passe o objeto para um dos métodos estáticos Create juntamente com os parâmetros de largura e altura. A largura e altura são definidas em pixels.
String dataDir = Utils.getDataDir(CreatingbySettingPath.class) + "DrawingAndFormattingImages/"; | |
String desName = dataDir + "CreatingAnImageBySettingPath_out.psd"; | |
// Creates an instance of PsdOptions and set its various properties | |
PsdOptions psdOptions = new PsdOptions(); | |
psdOptions.setCompressionMethod(CompressionMethod.RLE); | |
// Define the source property for the instance of PsdOptions. Second boolean parameter determines if the file is temporal or not | |
psdOptions.setSource(new FileCreateSource(desName, false)); | |
// Creates an instance of Image and call Create method by passing the PsdOptions object | |
try (Image image = Image.create(psdOptions, 500, 500)) { | |
image.save(); | |
} |
Criando Usando Fluxo
O processo de criação de uma imagem usando um fluxo é o mesmo que o uso de um caminho. A única diferença é que você precisa criar uma instância de StreamSource passando um objeto Stream para o seu construtor e atribuindo-o à propriedade Source.
String dataDir = Utils.getDataDir(CreatingUsingStream.class) + "DrawingAndFormattingImages/"; | |
String desName = dataDir + "CreatingImageUsingStream_out.bmp"; | |
// Creates an instance of BmpOptions and set its various properties | |
BmpOptions imageOptions = new BmpOptions(); | |
imageOptions.setBitsPerPixel(24); | |
// Create an instance of System.IO.Stream | |
FileCreateSource stream = new FileCreateSource(dataDir + "sample_out.bmp"); | |
// Define the source property for the instance of BmpOptions Second boolean parameter determines if the Stream is disposed once get out of scope | |
imageOptions.setSource(stream); | |
// Creates an instance of Image and call Create method by passing the BmpOptions object | |
try (Image image = Image.create(imageOptions, 500, 500)) { | |
// Do some image processing | |
image.save(desName); | |
} |
Abrindo Arquivos de Imagem
Os desenvolvedores podem usar a API Aspose.PSD para Java para abrir arquivos de imagem PSD existentes para diferentes fins, como adicionar efeitos à imagem ou converter um arquivo existente em outro formato. Seja qual for o propósito, o Aspose.PSD fornece duas formas padrão de abrir arquivos existentes: a partir de um arquivo ou a partir de um fluxo.
Abrindo do Disco
Abra um arquivo de imagem passando o caminho e o nome do arquivo como parâmetro para o método estático Load exposto pela classe Image.
String dataDir = Utils.getDataDir(SavingtoDisk.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) { | |
psdImage.save(destName, new PngOptions()); | |
} |
Abrindo Usando um Fluxo
Às vezes, a imagem que precisamos abrir está armazenada como um fluxo. Nesses casos, use a versão sobrecarregada do método Load. Isso aceita um objeto Stream como argumento para abrir a imagem.
String dataDir = Utils.getDataDir(LoadingFromStream.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
FileInputStream inputStream = new FileInputStream(sourceFile); | |
try (Image image = Image.load(inputStream); | |
PsdImage psdImage = (PsdImage) image) { | |
MemoryStream stream = new MemoryStream(); | |
FileOutputStream outputStream = new FileOutputStream(sourceFile); | |
psdImage.save(outputStream, new PngOptions()); | |
} |
Carregar Imagem como Camada
Este artigo demonstra o uso do Aspose.PSD para carregar uma imagem como uma camada. As APIs do Aspose.PSD expuseram métodos eficientes e fáceis de usar para alcançar esse objetivo. O Aspose.PSD expôs o método AddLayer da classe PsdImage para adicionar uma imagem a um arquivo PSD como camada.
Os passos para carregar uma imagem no PSD como camada são simples como abaixo:
- Crie uma instância de imagem usando a classe PsdImage com a largura e altura especificadas.
- Carregue um arquivo PSD como uma imagem usando o método de fábrica Load exposto pela classe Image.
- Crie uma instância da classe Layer e atribua a camada de imagem do PSD a ela.
- Adicione a camada criada usando o método AddLayer exposto pela classe PsdImage
- Salve os resultados.
String dataDir = Utils.getDataDir(LoadImageToPSD.class) + "PSD/"; | |
String filePath = dataDir + "PsdExample.psd"; | |
String outputFilePath = dataDir + "PsdResult.psd"; | |
try (PsdImage image = new PsdImage(200, 200); | |
Image im = Image.load(filePath)) { | |
Layer layer = null; | |
try { | |
layer = new Layer((RasterImage) im, false); | |
image.addLayer(layer); | |
} catch (Exception e) { | |
if (layer != null) { | |
layer.dispose(); | |
} | |
System.out.println(e); | |
} | |
} |
Salvando Arquivos de Imagem
O Aspose.PSD permite que você crie arquivos de imagem do zero. Ele também fornece meios para editar arquivos de imagem existentes. Após a criação ou modificação da imagem, o arquivo geralmente é salvo no disco. O Aspose.PSD fornece métodos para salvar imagens em um disco especificando um caminho ou usando um objeto Stream.
Salvando no Disco
A classe Image representa um objeto de imagem, portanto, esta classe fornece todas as ferramentas necessárias para criar, carregar e salvar um arquivo de imagem. Use o método Save da classe Image para salvar imagens. Uma versão sobrecarregada do método Save aceita a localização do arquivo como uma string.
String dataDir = Utils.getDataDir(SavingtoDisk.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) { | |
psdImage.save(destName, new PngOptions()); | |
} |
Salvando em um Fluxo
Outra versão sobrecarregada do método Save aceita o objeto Stream como argumento e salva o arquivo de imagem no fluxo.
Se a imagem for criada especificando qualquer um dos CreateOptions no construtor da Image, a imagem é automaticamente salva no caminho ou fluxo fornecido durante a inicialização da classe Image chamando o método Save que não aceita nenhum parâmetro.
String dataDir = Utils.getDataDir(SavingtoStream.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile); PsdImage psdImage = (PsdImage) image) { | |
FileOutputStream outputStream = new FileOutputStream(sourceFile); | |
psdImage.save(outputStream, new PngOptions()); | |
} |
Configuração para Substituir Fontes Ausentes
Os desenvolvedores podem usar a API Aspose.PSD para Java para carregar arquivos de imagem PSD existentes para diferentes fins, por exemplo, para definir o nome da fonte padrão ao salvar documentos PSD como imagem rasterizada (em formatos PNG, JPG e BMP). Esta fonte padrão deve ser usada como uma substituição para todas as fontes ausentes (fontes que não são encontradas no Sistema Operacional atual). Uma vez que a imagem é modificada, o arquivo será salvo no disco.
String dataDir = Utils.getDataDir(SettingforReplacingMissingFonts.class) + "Conversion/"; | |
String sourceFile = dataDir + "sample.psd"; | |
String destName = dataDir + "result.png"; | |
PsdLoadOptions loadOptions = new PsdLoadOptions(); | |
loadOptions.setDefaultReplacementFont("Arial"); | |
// load PSD image and replace the non found fonts. | |
try (Image image = Image.load(sourceFile, loadOptions); | |
PsdImage psdImage = (PsdImage) image) { | |
PngOptions Options = new PngOptions(); | |
Options.setColorType(PngColorType.TruecolorWithAlpha); | |
psdImage.save(destName, Options); | |
} |