Notas de Lançamento Aspose.PSD para .NET 20.3
Chave | Resumo | Categoria |
---|---|---|
PSDNET-188 | Suporte ao .Net Core | Recurso |
PSDNET-523 | Converter arquivos do Adobe Illustrator em PDFs | Recurso |
PSDNET-212 | Adicionar capacidade de renderizar estilos diferentes em uma camada de texto | Recurso |
PSDNET-144 | Suporte à camada de ajuste Preto e Branco | Recurso |
PSDNET-233 | Adicionar suporte para exportar AI formato (Versão 8) para outros formatos | Recurso |
PSDNET-540 | Suporte ao processamento do Modo de Mistura PassThrough (usado apenas para Grupo de Camadas) | Recurso |
PSDNET-539 | Exceção: Falha ao carregar imagem com Recurso de Nomes Alfa Unicode vazios | Erro |
PSDNET-541 | Saída incorreta após alterar visibilidade de um Grupo de Camadas | Erro |
PSDNET-516 | Exceção ao carregar imagem PSD: a seção de cor (Recurso de Sombra Projetada) deve conter 3 componentes de cor para RGB ou 4 componentes de cor para CMYK | Erro |
PSDNET-536 | Exceção ao tentar desenhar em uma camada recém-criada se a versão simples do Construtor for usada | Erro |
Mudanças na API Pública
APIs Adicionadas:
- T:Aspose.PSD.FileFormats.Psd.FontBaseline
- F:Aspose.PSD.FileFormats.Psd.FontBaseline.Nenhum
- F:Aspose.PSD.FileFormats.Psd.FontBaseline.Sobreposição
- F:Aspose.PSD.FileFormats.Psd.FontBaseline.Subscrito
- T:Aspose.PSD.FileFormats.Psd.FontCaps
- F:Aspose.PSD.FileFormats.Psd.FontCaps.Nenhum
- F:Aspose.PSD.FileFormats.Psd.FontCaps.MaiúsculasPequenas
- F:Aspose.PSD.FileFormats.Psd.FontCaps.TodasEmMaiúsculas
- M:Aspose.PSD.FileFormats.Psd.PsdImage.AdicionarCamadaDeAjustePretoBranco
- F:Aspose.PSD.FileFormats.Psd.Layers.BlendMode.Ausente
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerGroup.BlendModeKey
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.NegritoForjado
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.ItálicoForjado
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Sublinhado
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Riscado
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FontBaseline
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.DeslocamentoBase
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FontCaps
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.ProduzirPorções(Sistema.String[],Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle,Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph)
APIs Removidas:
- Nenhuma
Exemplos de Uso:
PSDNET-523. Converter arquivos do Adobe Illustrator em PDFs
string arquivoFonte = "rect2_color.ai";
using (var imagemAi = (AiImage)Image.Load(arquivoFonte))
{
imagemAi.Save("rect2_color.ai_output.pdf", new PdfOptions());
}
PSDNET-212. Adicionar capacidade de renderizar diferentes estilos em uma camada de texto
string arquivoFonte = "texto212.psd";
string arquivoEthalon = "Ethalon_text212.psd";
string arquivoSaida = "Saída_text212.psd";
using (var img = (PsdImage)Image.Load(arquivoFonte))
{
TextLayer camadaTexto = (TextLayer)img.Layers[1];
IText dadosTexto = camadaTexto.TextData;
ITextStyle estiloPadrao = dadosTexto.ProducePortion().Style;
ITextParagraph paragrafoPadrao = dadosTexto.ProducePortion().Paragraph;
estiloPadrao.FillColor = Color.DimGray;
estiloPadrao.FontSize = 51;
dadosTexto.Items[1].Style.Strikethrough = true;
ITextPortion[] novasPorções = dadosTexto.ProducePortions(new string[] { "E=mc", "2\r", "Negrito", "Itálico\r", "TextoEmMinúsculas" }, estiloPadrao, paragrafoPadrao);
novasPorções[0].Style.Underline = true; // editar estilo de texto "E=mc"
novasPorções[1].Style.FontBaseline = FontBaseline.Sobreposição; // editar estilo de texto "2\r"
novasPorções[2].Style.FauxBold = true; // editar estilo de texto "Negrito"
novasPorções[3].Style.FauxItalic = true; // editar estilo de texto "Itálico\r"
novasPorções[3].Style.BaselineShift = -25; // editar estilo de texto "Itálico\r"
novasPorções[4].Style.FontCaps = FontCaps.MaiúsculasPequenas; // editar estilo de texto "TextoEmMinúsculas"
foreach (var novaPorção in novasPorções)
{
dadosTexto.AddPortion(novaPorção);
}
dadosTexto.UpdateLayerData();
img.Save(arquivoSaida);
}
PSDNET-233. Adicionar suporte para exportar AI formato (Versão 8) para outros formatos
// Exemplo de exportação de arquivo AI para formatos PSD e PNG
string nomeArquivoFonte = "form_8.ai";
string nomeArquivoSaida = "form_8_export";
using (AiImage imagem = (AiImage)Image.Load(nomeArquivoFonte))
{
imagem.Save(nomeArquivoSaida + ".psd", new PsdOptions());
imagem.Save(nomeArquivoSaida + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
PSDNET-540. Suporte ao processamento do Modo de Mistura PassThrough (usado apenas para Grupo de Camadas)
void AssertIsTrue(bool condicao, string mensagem)
{
if (!condicao)
{
throw new FormatException(mensagem);
}
}
string nomeArquivoFonte = "Apple.psd";
string nomeArquivoSaida = "Saída" + nomeArquivoFonte;
using (PsdImage imagem = (PsdImage)Image.Load(nomeArquivoFonte))
{
AssertIsTrue(imagem.Layers.Length >= 23, "Não existe a 23ª camada.");
var camada = imagem.Layers[23] as LayerGroup;
AssertIsTrue(camada != null, "A 23ª camada não é um grupo de camadas.");
AssertIsTrue(camada.Name == "GrupoAjuste", "O nome da 23ª camada não é 'GrupoAjuste'.");
AssertIsTrue(camada.BlendModeKey == BlendMode.PassThrough, "A camada GrupoAjuste deve ter o modo de mistura 'pass through'.");
imagem.Save(nomeArquivoSaida, new PsdOptions());
imagem.Save("SaídaApple.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
camada.BlendModeKey = BlendMode.Normal;
imagem.Save("Normal" + nomeArquivoSaida, new PsdOptions());
imagem.Save("NormalSaídaApple.png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
SPSDNET-180. Atualizar texto em camada de texto gera exceção
// Atualizar texto em camada de texto gera exceção
string caminhoArquivo = "FlipVertical.psd";
string caminhoSaida = "FlipVertical_alterado.psd";
var novoTexto = "Teste";
using (var imagem = Image.Load(caminhoArquivo))
{
var psdImagem = imagem as PsdImage;
if (imagem == null)
{
return;
}
var camadas = psdImagem.Layers;
for (var indice = camadas.Length - 1; indice >= 0; indice--)
{
var camada = camadas[indice] as TextLayer;
if (camada == null)
{
continue;
}
camada.UpdateText(novoTexto);
}
var opcoesImagem = new PsdOptions(psdImagem);
psdImagem.Save(caminhoSaida, opcoesImagem);
}
PSDNET-182. Salvar imagem PSD após operação RotateFlip produz arquivo corrompido que não pode ser aberto.
string nomeArquivoFonte = "1.psd";
RotateFlipType tipoFlip = RotateFlipType.Rotate270FlipXY;
string nomeArquivoSaidaPsd = "RotateFlipTest2617.psd";
using (PsdImage imagem = (PsdImage)Image.Load(nomeArquivoFonte))
{
imagem.RotateFlip(tipoFlip);
imagem.Save(nomeArquivoSaidaPsd);
}
// Deve ser executado sem exceções
using (PsdImage imagem = (PsdImage)Image.Load(nomeArquivoSaidaPsd))
{
// Não fazer nada
}
PSDNET-539. Exceção: Falha ao carregar imagem com Recurso de Nomes Alfa Unicode vazios
string caminhoFonte = "apple.psd";
using (var psdImagem = (PsdImage)Image.Load(caminhoFonte)) // Aqui não devemos obter exceções
{
// não fazer nada
}
PSDNET-541. Saída incorreta após alterar visibilidade de um Grupo de Camadas
string arquivoFonte = "input.psd";
string arquivoSaida = "output.psd";
// fazer alterações nos nomes das camadas e salvar
using (var imagem = (PsdImage)Image.Load(arquivoFonte))
{
for (int i = 0; i < imagem.Layers.Length; i++)
{
var camada = imagem.Layers[i];
// Desligar tudo dentro de um grupo
if (camada is LayerGroup)
{
camada.IsVisible = false;
}
}
imagem.Save(arquivoSaida);
}
PSDNET-516. Exceção ao carregar imagem PSD: a seção de cor (Recurso de Sombra Projetada) deve conter 3 componentes de cor para RGB ou 4 componentes de cor para CMYK
string arquivoFonte = "sss0136=GUID-SSS0136=1=ar-sa=Low.psd";
using (var img = (PsdImage)Image.Load(arquivoFonte)) // Aqui não devemos obter exceções
{
// não fazer nada
}
PSDNET-536. Exceção ao tentar desenhar em uma camada recém-criada se a versão simples do Construtor for usada
string arquivoSaida = "output.psd";
int largura = 100;
int altura = 100;
using (var imagem = new PsdImage(largura, altura))
{
var camada = new Layer();
camada.Bottom = altura;
camada.Right = largura;
imagem.AddLayer(camada);
Graphics grafico = new Graphics(camada);
grafico.Clear(Color.Yellow);
// desenhar um retângulo com a ferramenta Caneta
grafico.DrawRectangle(new Pen(Color.Red), new Rectangle(30, 10, 40, 80));
// desenhar outro retângulo com Pincel Sólido na cor Azul
grafico.DrawRectangle(new Pen(new SolidBrush(Color.Blue)), new Rectangle(10, 30, 80, 40));
imagem.Save(arquivoSaida);
}