Aspose.PSD pour .NET 19.10 - Notes de publication
Contents
[
Hide
]
Cette page contient les notes de publication pour Aspose.PSD pour .NET 19.10
Clé | Résumé | Catégorie |
---|---|---|
PSDNET-207 | Support de la couche d’ajustement d’équilibre des couleurs | Fonctionnalité |
PSDNET-145 | Support de la couche d’ajustement d’inversion | Fonctionnalité |
PSDNET-139 | Implémenter le rééchantillonneur bicubique | Fonctionnalité |
PSDNET-169 | Ajouter le support de l’exportation PSD en PDF avec masque de découpe | Fonctionnalité |
PSDNET-168 | Ajouter le support de l’exportation PSD en PDF avec des couches d’ajustement | Fonctionnalité |
PSDNET-179 | Problème Obtenir Effet d’Ombre Portée de la Couche | Amélioration |
PSDNET-203 | Lors de la mise à jour du texte avec des caractères / (barre oblique), le fichier ne peut pas être ouvert dans Photoshop | Bogue |
PSDNET-199 | Le fichier PSD ne peut pas être enregistré lorsque la couche de texte contient uniquement un saut de ligne | Bogue |
PSDNET-185 | Taille de police extraite incorrecte | Bogue |
Changements de l’API publique
APIs ajoutées :
- T:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.PreserveLuminosity
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.ShadowsCyanRedBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.ShadowsMagentaGreenBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.ShadowsYellowBlueBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.MidtonesCyanRedBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.MidtonesMagentaGreenBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.MidtonesYellowBlueBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.HighlightsCyanRedBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.HighlightsMagentaGreenBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.ColorBalanceAdjustmentLayer.HighlightsYellowBlueBalance
- T:Aspose.PSD.FileFormats.Psd.Layers.AdjustmentLayers.InvertAdjustmentLayer
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.Save(Aspose.PSD.StreamContainer,System.Int32)
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.TypeToolKey
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.PsdVersion
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.PreserveLuminosity
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.ShadowsCyanRedBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.ShadowsMagentaGreenBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.ShadowsYellowBlueBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.MidtonesCyanRedBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.MidtonesMagentaGreenBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.MidtonesYellowBlueBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.HighlightsCyanRedBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.HighlightsMagentaGreenBalance
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.BlncResource.HighlightsYellowBlueBalance
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.#ctor
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.#ctor(System.Byte[])
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.PsdVersion
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.Save(Aspose.PSD.StreamContainer,System.Int32)
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.NvrtResource.TypeToolKey
- P:Aspose.PSD.FileFormats.Psd.Layers.TextLayer.TransformMatrix
- P:Aspose.PSD.FileFormats.Psd.PsdImage.GlobalAngle
- M:Aspose.PSD.FileFormats.Psd.PsdImage.AddColorBalanceAdjustmentLayer
- M:Aspose.PSD.FileFormats.Psd.PsdImage.AddInvertAdjustmentLayer
- F:Aspose.PSD.ResizeType.CatmullRom
- F:Aspose.PSD.ResizeType.CubicConvolution
- F:Aspose.PSD.ResizeType.CubicBSpline
- F:Aspose.PSD.ResizeType.Mitchell
- F:Aspose.PSD.ResizeType.SinC
- F:Aspose.PSD.ResizeType.Bell
APIs supprimées :
- Aucune
Exemples d’utilisation :
PSDNET-207. Support de la couche d’ajustement d’équilibre des couleurs
var cheminFichier = "ColorBalance.psd";
var cheminSortie = "ColorBalance_sortie.psd";
using (var im = (PsdImage)Image.Load(cheminFichier))
{
foreach (var couche in im.Layers)
{
var coucheEqCou = couche as ColorBalanceAdjustmentLayer;
if (coucheEqCou != null)
{
coucheEqCou.ShadowsCyanRedBalance = 30;
coucheEqCou.ShadowsMagentaGreenBalance = -15;
coucheEqCou.ShadowsYellowBlueBalance = 40;
coucheEqCou.MidtonesCyanRedBalance = -90;
coucheEqCou.MidtonesMagentaGreenBalance = -25;
coucheEqCou.MidtonesYellowBlueBalance = 20;
coucheEqCou.HighlightsCyanRedBalance = -30;
coucheEqCou.HighlightsMagentaGreenBalance = 67;
coucheEqCou.HighlightsYellowBlueBalance = -95;
coucheEqCou.PreserveLuminosity = true;
}
}
im.Save(cheminSortie);
}
PSDNET-145. Support de la couche d’ajustement d’inversion
var cheminFichier = "InvertStripes_avant.psd";
var cheminSortie = "InvertStripes_apres.psd";
using (var im = (PsdImage)Image.Load(cheminFichier))
{
im.AddInvertAdjustmentLayer();
im.Save(cheminSortie);
}
PSDNET-139. Implémenter le rééchantillonneur bicubique
string fichierSource = "sample.psd";
string nomDest = "ResamplerCubicConvolutionStripes_apres.psd";
// Charger une image existante dans une instance de la classe PsdImage
using (PsdImage image = (PsdImage)Image.Load(fichierSource))
{
image.Resize(300, 300, ResizeType.CubicConvolution);
image.Save(nomDest, new PsdOptions(image));
}
string fichierSource = "sample.psd";
string nomDest = "ResamplerCatmullRomStripes_apres.psd";
// Charger une image existante dans une instance de la classe PsdImage
using (PsdImage image = (PsdImage)Image.Load(fichierSource))
{
image.Resize(300, 300, ResizeType.CatmullRom);
image.Save(nomDest, new PsdOptions(image));
}
string fichierSource = "sample.psd";
string nomDest = "ResamplerMitchellStripes_apres.psd";
// Charger une image existante dans une instance de la classe PsdImage
using (PsdImage image = (PsdImage)Image.Load(fichierSource))
{
image.Resize(300, 300, ResizeType.Mitchell);
image.Save(nomDest, new PsdOptions(image));
}
string fichierSource = "sample.psd";
string nomDest = "ResamplerCubicBSplineStripes_apres.psd";
// Charger une image existante dans une instance de la classe PsdImage
using (PsdImage image = (PsdImage)Image.Load(fichierSource))
{
image.Resize(300, 300, ResizeType.CubicBSpline);
image.Save(nomDest, new PsdOptions(image));
}
string fichierSource = "sample.psd";
string nomDest = "ResamplerSinCStripes_apres.psd";
// Charger une image existante dans une instance de la classe PsdImage
using (PsdImage image = (PsdImage)Image.Load(fichierSource))
{
image.Resize(300, 300, ResizeType.SinC);
image.Save(nomDest, new PsdOptions(image));
}
string fichierSource = "sample.psd";
string nomDest = "ResamplerBellStripes_apres.psd";
// Charger une image existante dans une instance de la classe PsdImage
using (PsdImage image = (PsdImage)Image.Load(fichierSource))
{
image.Resize(300, 300, ResizeType.Bell);
image.Save(nomDest, new PsdOptions(image));
}
PSDNET-169. Ajouter le support de l’exportation PSD en PDF avec masque de découpe
using (PsdImage image = (PsdImage)Image.Load("clip.psd"))
{
image.Save("output.pdf", new PdfOptions());
}
PSDNET-168. Ajouter le support de l’exportation PSD en PDF avec des couches d’ajustement
using (PsdImage image = (PsdImage)Image.Load("exemple.psd"))
{
image.Save("document.pdf", new PdfOptions());
}
PSDNET-203. Lors de la mise à jour du texte avec / (barre oblique), le fichier ne peut pas être ouvert dans Photoshop
var psdImage = (PsdImage)image;
var layers = psdImage.Layers;
for (var index = layers.Length - 1; index >= 0; index--)
{
var layer = layers[index];
if (!(layer is TextLayer)) continue;
var textLayer = (TextLayer)layer;
textLayer.UpdateText("/");
}
var imageOptions = new PsdOptions(psdImage);
var nomFichier = Path.GetFileName(cheminFichier);
var cheminSortieFichier = Path.GetDirectoryName(cheminFichier) + "\\cible_" + nomFichier;
psdImage.Save(cheminSortieFichier, imageOptions);
PSDNET-199. Le fichier PSD ne peut pas être enregistré lorsque la couche de texte contient uniquement un saut de ligne
string cheminFichier = "testLineBreaks2.psd";
string cheminSortie = "testLineBreaks2_modifie.psd";
var nouveauTexte = "\r";
using (var image = Image.Load(cheminFichier))
{
var psdImage = image as PsdImage;
if (image == null)
{
return;
}
var layers = psdImage.Layers;
for (var index = layers.Length - 1; index >= 0; index--)
{
var layer = layers[index] as TextLayer;
if (layer == null)
{
continue;
}
layer.UpdateText(nouveauTexte);
}
var imageOptions = new PsdOptions(psdImage);
psdImage.Save(cheminSortie, imageOptions);
}
PSDNET-185. Taille de police extraite incorrecte
// Taille de police extraite incorrecte
string cheminFichier = "直播+电商.psd";
var tolérance = 0,001;
using (var image = Image.Load(cheminFichier))
{
int indexCouche = 22;
// Ancienne API (Utilisation de la première taille de police du paragraphe)
PsdImage psdImage = image as PsdImage;
double[] matrice = ((TextLayer)psdImage.Layers[indexCouche]).TransformMatrix;
double taillePoliceBase = ((TextLayer)psdImage.Layers[indexCouche]).Font.Size;
double taillePolice = matrice[0] * taillePoliceBase;
// Vérification de la taille de police de base
if (Math.Abs(100,0 - taillePoliceBase) > tolérance)
{
throw new Exception("La taille de police a été lue incorrectement");
}
// Vérification de la taille de police réelle
if (Math.Abs(88,425 - taillePolice) > tolérance)
{
throw new Exception("La matrice de transformation a été lue incorrectement");
}
// Nouvelle API (Une seule couche de texte peut contenir une quantité quelconque de tailles de police)
ITextPortion[] portions = ((TextLayer)psdImage.Layers[indexCouche]).TextData.Items;
ITextStyle style = portions[0].Style;
double taillePolicePortion = matrice[0] * style.FontSize;
// Vérification de la taille de police de la portion de base
if (Math.Abs(100,0 - style.FontSize) > tolérance)
{
throw new Exception("La taille de police a été lue incorrectement");
}
// Vérification de la taille de police réelle de la portion
if (Math.Abs(88,425 - taillePolicePortion) > tolérance)
{
throw new Exception("La matrice de transformation a été lue incorrectement");
}
}
PSDNET-179. Problème Obtenir Effet d’Ombre Portée de la Couche
// Lorsque la propriété DropShadowEffect.UseGlobalLight est 'true', alors l'objet DropShadowEffect utilise la valeur d'angle de la propriété PsdImage.GlobalAngle.
using (PsdImage image = (PsdImage)Image.Load("4.psd"))
{
image.GlobalAngle = 30;
image.Save("output.psd");
}