Aspose.PSD para .NET 19.12 - Notas de Lançamento
Contents
[
Hide
]
Esta página contém as notas de lançamento para Aspose.PSD para .NET 19.12
Chave | Resumo | Categoria |
---|---|---|
PSDNET-11 | Suporte de Camada Linkada | Recurso |
PSDNET-131 | Suporte de Recurso SoCo | Recurso |
PSDNET-115 | Quebras de Linha são adicionadas a Quebras de Linha existentes se a Camada de Texto for atualizada com uma sequência | Erro |
PSDNET-157 | Salvar PSB como PNG congela | Erro |
PSDNET-250 | Exceção ao carregar arquivo PSD CMYK sem camadas com compressão RLE | Erro |
PSDNET-161 | Exceção ao atualizar camadas de texto | Erro |
PSDNET-222 | Redimensionar alguns arquivos PSD com máscaras de camada funciona incorretamente | Erro |
PSDNET-244 | Salvar PSD com algumas Globalization.CultureInfo.CurrentCulture leva a exceções ao carregar | Erro |
Mudanças na API Pública
APIs Adicionadas:
- P:Aspose.PSD.FileFormats.Psd.PsdImage.LinkedLayersManager
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskDataFull.UserMaskData
- T:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.LinkLayers(Aspose.PSD.FileFormats.Psd.Layers.Layer[])
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.UnlinkLayer(Aspose.PSD.FileFormats.Psd.Layers.Layer)
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.GetLayersByLinkGroupId(System.Int16)
- M:Aspose.PSD.FileFormats.Psd.Layers.LinkedLayersManager.GetLinkGroupId(Aspose.PSD.FileFormats.Psd.Layers.Layer)
APIs Removidas:
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerMaskData.ImageDataVector
Exemplos de Uso:
PSDNET-11. Suporte de Camada Linkada
using (var psd = (PsdImage)Image.Load("exemplo.psd"))
{
Layer[] camadas = psd.Layers;
// vincular todas as camadas em um grupo vinculado
short groupIdDeCamadas = psd.LinkedLayersManager.LinkLayers(camadas);
// obter id para uma camada
short groupIdVinculado = psd.LinkedLayersManager.GetLinkGroupId(camadas[0]);
if (groupIdDeCamadas != groupIdVinculado)
{
throw new Exception("groupIdDeCamadas e groupIdVinculado não são iguais.");
}
// obter todas as camadas vinculadas pelo id do grupo de ligação.
Layer[] camadasVinculadas = psd.LinkedLayersManager.GetLayersByLinkGroupId(groupIdVinculado);
// desvincular cada camada do grupo
foreach (var camadaVinculada in camadasVinculadas)
{
psd.LinkedLayersManager.UnlinkLayer(camadaVinculada);
}
// obter NULL para um ID de grupo de link que não possui camadas no grupo.
camadasVinculadas = psd.LinkedLayersManager.GetLayersByLinkGroupId(groupIdVinculado);
if (camadasVinculadas != null)
{
throw new Exception("O campo camadasVinculadas não é NULO.");
}
psd.Save("psdnet11_output.psd");
}
PSDNET-131. Suporte de Recurso SoCo
// Suporte de Recurso SoCo
string nomeDoArquivoFonte = "CamadaDePreenchimentoDeCor.psd";
string caminhoExportacao = "SoCoResource_Edited.psd";
var im = (PsdImage)Image.Load(nomeDoArquivoFonte);
using (im)
{
foreach (var camada in im.Layers)
{
if (camada is FillLayer)
{
var camadaPreenchimento = (FillLayer)camada;
foreach (var recurso in camadaPreenchimento.Resources)
{
if (recurso is SoCoResource)
{
var recursoSoCo = (SoCoResource)recurso;
Assert.AreEqual(Color.FromArgb(63, 83, 141), recursoSoCo.Color);
recursoSoCo.Color = Color.Red;
break;
}
}
break;
}
im.Save(caminhoExportacao);
}
}
PSDNET-115. Quebras de Linha são adicionadas a Quebras de Linha existentes se a Camada de Texto for atualizada com uma sequência
const string NovoTexto = "abcdef\rzxcvbn";
string caminhoArquivoFonte = "ArquivoDeTesteParaCaracteresAsiáticos.psd");
string caminhoArquivoSaida = "resultado.psd";
using (var imagem = (PsdImage)Image.Load(caminhoArquivoFonte))
{
var camada = (TextLayer)imagem.Layers[0];
var opcoesImagem = new PsdOptions(imagem);
camada.UpdateText(NovoTexto);
imagem.Save(caminhoArquivoSaida, opcoesImagem);
}
using (var imagemCriada = (PsdImage)Image.Load(caminhoArquivoSaida))
{
var camadaCriada = (TextLayer)imagemCriada.Layers[0];
if (NovoTexto != camadaCriada.Text)
{
throw new InvalidDataException("O texto atualizado é inválido");
}
}
PSDNET-157. Salvar PSB como PNG congela
// Salvar PSB como PNG
string nomeArquivoFonte = "amostra.psb";
string nomeArquivoSaida = "amostra.png";
using (PsdImage imagem = (PsdImage)Image.Load(nomeArquivoFonte))
{
PngOptions opcoes = new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha };
imagem.Save(nomeArquivoSaida, opcoes);
}
PSDNET-250. Exceção ao carregar arquivo PSD CMYK sem camada com compressão RLE
void CarregarDadosBrutosDoPsd()
{
string caminhoFonte = "CyanMagentaYellowBlackComAlpha.psd";
using (RasterImage imagem = (RasterImage)Image.Load(caminhoFonte))
{
var configuracoesDadosBrutos = imagem.RawDataSettings;
RawDataTester carregador = new RawDataTester();
imagem.LoadRawData(imagem.Bounds, configuracoesDadosBrutos, carregador);
}
}
class RawDataTester : IPartialRawDataLoader
{
public void Process(Rectangle retângulo, byte[] pixels, Point inicio, Point fim)
{
}
public void Process(Rectangle retângulo, byte[] pixels, Point inicio, Point fim, LoadOptions opçõesCarregamento)
{
}
}
PSDNET-161. Exceção ao atualizar camadas de texto
// Carregar um arquivo PSD como uma imagem e convertê-lo em PsdImage
using (PsdImage imagemPsd = (PsdImage)Image.Load("exemplo.psd"))
{
foreach (var camada in imagemPsd.Layers)
{
if (camada is TextLayer)
{
TextLayer camadaTexto = camada as TextLayer;
camadaTexto.UpdateText("atualização de teste", new Point(0, 0), 15.0f, Color.Purple);
}
}
imagemPsd.Save("AtualizarCamadaDeTextoNoArquivoPSD_saida.psd");
}
PSDNET-222. Redimensionar alguns arquivos PSD com máscaras de camada funciona incorretamente
int escala = 2;
string[] nomes = {
"UmaRegularEUmAjusteComVetorELayerMask",
"CamadaDeNíveisComLayerMaskRgb",
"CamadaDeNíveisComLayerMaskCmyk",
"CamadaDeAjusteBalançoDeCores"
};
for (int i = 0; i < nomes.Length; i++)
{
string caminhoArquivoFonte = nomes[i] + ".psd";
string caminhoArquivoSaida = "saida_" + caminhoArquivoFonte;
string caminhoPngSaida = "saida_" + nomes[i] + ".png";
var opcoesCarregamentoPsd = new PsdLoadOptions() { LoadEffectsResource = true };
using (PsdImage imagem = (PsdImage)Image.Load(caminhoArquivoFonte, opcoesCarregamentoPsd))
{
imagem.Resize(imagem.Width * escala, imagem.Height * escala);
imagem.Save(caminhoArquivoSaida, new PsdOptions());
imagem.Save(caminhoPngSaida, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
}
PSDNET-244. Salvar PSD com algumas Globalization.CultureInfo.CurrentCulture leva a exceções ao carregar
for (int i = 0; i <= 6; i++)
{
string nomeArquivoFonte = string.Format("exemplo-{0}.psd", i);
var opcoesCarregamentoPsd = new PsdLoadOptions() { LoadEffectsResource = true };
var opcoesSalvamentoPsd = new PsdOptions();
var cultura = new System.Globalization.CultureInfo("ru-RU");
System.Threading.Thread.CurrentThread.CurrentCulture = cultura;
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura;
string nomeArquivoSaida = "saida-" + nomeArquivoFonte;
// Carregar um arquivo PSD como uma imagem e convertê-lo em PsdImage
using (PsdImage imagem = (PsdImage)Image.Load(nomeArquivoFonte, opcoesCarregamentoPsd))
{
imagem.Resize(160, 120);
imagem.Save(nomeArquivoSaida, opcoesSalvamentoPsd);
}
cultura = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = cultura;
System.Threading.Thread.CurrentThread.CurrentUICulture = cultura;
// Carregar um arquivo PSD como uma imagem e convertê-lo em PsdImage
using (PsdImage imagem2 = (PsdImage)Image.Load(nomeArquivoFonte, opcoesCarregamentoPsd))
{
imagem2.Resize(160, 120);
imagem2.Save(nomeArquivoSaida, opcoesSalvamentoPsd);
}
}