Notas de Lançamento do Aspose.PSD para .NET 19.4
Chave | Resumo | Categoria |
---|---|---|
PSDNET-87 | Criar recurso para carregar arquivos de imagem JPEG/PNG/etc no PsdImage sem carregamento direto (que não é suportado no Aspose.PSD) | Recurso |
PSDNET-120 | Suporte para modo de Cor RGB com 16 bits/canal (64 bits por cor) | Recurso |
PSDNET-108 | Suporte de Máscaras de Vetor de Camada e Rotação Personalizada de Texto de Camada | Recurso |
PSDNET-99 | Todos os caracteres asiáticos não são renderizados corretamente | Erro |
PSDNET-116 | Os símbolos \r\n são interpretados como quebra de linha dupla, o que está incorreto | Erro |
PSDNET-117 | Se a Camada de Texto for atualizada com uma string contendo quebras de linha, o arquivo PSD se torna ilegível | Erro |
PSDNET-118 | Se a Camada de Texto for atualizada com uma string contendo símbolos de tabulação, o processamento falha com exceção | Erro |
Mudanças na API Pública
APIs Adicionadas:
- M:Aspose.PSD.FileFormats.Psd.PsdImage.AddLayer(Aspose.PSD.FileFormats.Psd.Layers.Layer)
- M:Aspose.PSD.FileFormats.Psd.Layers.Layer.#ctor(Aspose.PSD.RasterImage)
APIs Removidas:
- T:Aspose.PSD.FileFormats.Gif.GifImage
- M:Aspose.PSD.FileFormats.Gif.GifImage.#ctor(Aspose.PSD.FileFormats.Gif.Blocks.GifFrameBlock,Aspose.PSD.IColorPalette)
- M:Aspose.PSD.FileFormats.Gif.GifImage.#ctor(Aspose.PSD.FileFormats.Gif.Blocks.GifFrameBlock)
- M:Aspose.PSD.FileFormats.Gif.GifImage.#ctor(Aspose.PSD.FileFormats.Gif.Blocks.GifFrameBlock,Aspose.PSD.IColorPalette,System.Boolean,System.Byte,System.Byte,System.Byte,System.Boolean)
- P:Aspose.PSD.FileFormats.Gif.GifImage.FileFormat …
- M:Aspose.PSD.FileFormats.Tiff.TiffImage.ReplaceFrame(System.Int32,Aspose.PSD.FileFormats.Tiff.TiffFrame)
Exemplos de Uso:
PSDNET-87. Criar recurso para carregar arquivos de imagem JPEG/PNG/etc no PsdImage sem carregamento direto (que não é suportado no Aspose.PSD)
string caminhoDoArquivo = "ExemploPsd.psd";
string caminhoDeSaida = "ResultadoPsd.psd";
using(var imagem = new PsdImage(200, 200)) {
using(var im = Image.Load(caminhoDoArquivo)) {
Layer camada = null;
try {
camada = new Layer((RasterImage) im);
imagem.AddLayer(camada);
} catch (Exception e) {
if (camada != null) {
camada.Dispose();
}
throw;
}
}
imagem.Save(caminhoDeSaida);
}
PSDNET-120. Suporte para modo de Cor RGB com 16 bits/canal (64 bits por cor)
// Suporte para modo de Cor RGB com 16 bits/canal (64 bits por cor)
string nomeDoArquivoFonte = "inRgb16.psd.psd";
string caminhoArquivoSaidaJpg = "outRgb16.jpg";
string caminhoArquivoSaidaPsd = "outRgb16.psd";
var opcoes = new PsdLoadOptions();
using(PsdImage imagem = (PsdImage) Image.Load(nomeDoArquivoFonte, opcoes)) {
imagem.Save(caminhoArquivoSaidaPsd, new PsdOptions(imagem));
imagem.Save(caminhoArquivoSaidaJpg, new JpegOptions() {
Qualidade = 100
});
}
// Os arquivos devem ser abertos sem exceção e legíveis para o Photoshop
using(Image imagem = Image.Load(caminhoArquivoSaidaPsd)) {}
PSDNET-108. Suporte de Máscaras de Vetor de Camada e Rotação Personalizada de Texto de Camada
// A operação RotateFlip não funciona conforme o esperado com PSD
var arquivoFonte = "1.psd";
var caminhoPng = "TesteRotateFlip2617.png";
var caminhoPsd = "TesteRotateFlip2617.psd";
var tipoRotação = RotateFlipType.Rotate270FlipXY;
using(var im = (PsdImage)(Image.Load(arquivoFonte))) {
im.RotateFlip(tipoRotação);
im.Save(caminhoPng, new PngOptions() {
TipoCor = PngColorType.TruecolorWithAlpha
});
im.Save(caminhoPsd);
}
PSDNET-99. Todos os caracteres asiáticos não são renderizados corretamente
Por favor, verifique o exemplo anexado
PSDNET-116. Os símbolos \r\n são interpretados como quebra de linha dupla, o que está incorreto
// Os símbolos \r\n são interpretados como quebra de linha dupla, o que está incorreto
string nomeDoArquivoFonte = "TesteTexto.psd";
string caminhoExportação = "Resultado.psd";
using(Image imagem = Image.Load(nomeDoArquivoFonte)) {
if (!(imagem is PsdImage)) {
return;
}
PsdImage psdImagem = (PsdImage) imagem;
Layer[] camadas = psdImagem.Layers;
for (int indice = camadas.Length - 1; indice >= 0; indice--) {
Layer camada = camadas[indice];
if (!(camada is TextLayer)) {
continue;
}
TextLayer camadaTexto = (TextLayer) camada;
camadaTexto.UpdateText("Primeiro Parágrafo\r\nSegundo Parágrafo\rTerceiro parágrafo\nQuarto Parágrafo");
}
PsdOptions opçõesImagem = new PsdOptions(psdImagem);
psdImagem.Save(caminhoExportação, opçõesImagem);
}
// O arquivo deve ser aberto sem exceção e deve ser legível para o Photoshop. Deve conter 3 quebras de linha, uma entre cada linha
using(Image imagem = Image.Load(caminhoExportação)) {}
PSDNET-117. Se a Camada de Texto for atualizada com uma string que contém quebras de linha, o arquivo PSD se torna ilegível
// Se a Camada de Texto for atualizada com uma string que contém quebras de linha, o arquivo PSD se torna ilegível
string nomeDoArquivoFonte = "TesteTexto.psd";
string caminhoExportação = "Resultado.psd";
using(Image imagem = Image.Load(nomeDoArquivoFonte)) {
if (!(imagem is PsdImage)) {
return;
}
PsdImage psdImagem = (PsdImage) imagem;
Layer[] camadas = psdImagem.Layers;
for (int indice = camadas.Length - 1; indice >= 0; indice--) {
Layer camada = camadas[indice];
if (!(camada is TextLayer)) {
continue;
}
TextLayer camadaTexto = (TextLayer) camada;
camadaTexto.UpdateText("Primeiro Parágrafo\r\nSegundo Parágrafo\r\nTerceiro parágrafo\r\nQuarto Parágrafo");
}
PsdOptions opçõesImagem = new PsdOptions(psdImagem);
psdImagem.Save(caminhoExportação, opçõesImagem);
}
// O arquivo deve ser aberto sem exceção e deve ser legível para o Photoshop
using(Image imagem = Image.Load(caminhoExportação)) {}
PSDNET-118. Se a Camada de Texto for atualizada com uma string que contém símbolos de tabulação, o processamento falha com exceção
// Se a Camada de Texto for atualizada com uma string que contém símbolos de tabulação, o processamento falha com exceção
string nomeDoArquivoFonte = "TesteTexto.psd";
string caminhoExportação = "Resultado.psd";
using(Image imagem = Image.Load(nomeDoArquivoFonte)) {
if (!(imagem is PsdImage)) {
return;
}
PsdImage psdImagem = (PsdImage) imagem;
Layer[] camadas = psdImagem.Layers;
for (int indice = camadas.Length - 1; indice >= 0; indice--) {
Layer camada = camadas[indice];
if (!(camada is TextLayer)) {
continue;
}
TextLayer camadaTexto = (TextLayer) camada;
camadaTexto.UpdateText("Texto de Início\tTexto Após Tabulação");
}
PsdOptions opçõesImagem = new PsdOptions(psdImagem);
psdImagem.Save(caminhoExportação, opçõesImagem);
}
// O arquivo deve ser aberto sem exceção e deve ser legível para o Photoshop
using(Image imagem = Image.Load(caminhoExportação)) {}