Aspose.PSD voor .NET 19.9 - Release-opmerkingen
Contents
[
Hide
]
Deze pagina bevat release-opmerkingen voor Aspose.PSD voor .NET 19.9
Sleutel | Samenvatting | Categorie |
---|---|---|
PSDNET-160 | Verkeerde laagnaam geëxtraheerd | Functie |
PSDNET-175 | Eigenschappen van tekst verkrijgen uit een ander deel van tekst binnen PSD TextLayer | Functie |
PSDNET-190 | Ondersteuning voor Toevoegen laaggroep | Functie |
PSDNET-192 | Ondersteuning van Schaal Eigenschap voor Verloopvullingslaag | Functie |
PSDNET-162 | Helderheid aanpassen | Verbetering |
PSDNET-174 | IndexOutOfRangeException bij opslaan PSD-afbeelding als JPEG | Fout |
PSDNET-180 | Het bijwerken van tekstlaagtekst genereert een uitzondering | Fout |
PSDNET-182 | Het opslaan van PSD-afbeelding na RotateFlip-operatie produceert een beschadigd bestand dat niet kan worden geopend | Fout |
Wijzigingen in de openbare API
Toegevoegde API’s:
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerGroup.AddLayerGroup(System.String,System.Int32)
- T:Aspose.PSD.FileFormats.Psd.Layers.Text.IText
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.Items
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.Text
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.ProducePortion
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.AddPortion(Aspose.PSD.FileFormats.Psd.Layers.Text.ITextPortion)
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.InsertPortion(Aspose.PSD.FileFormats.Psd.Layers.Text.ITextPortion,System.Int32)
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.RemovePortion(System.Int32)
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.IText.UpdateLayerData
- T:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.Justification
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.FirstLineIndent
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.StartIndent
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.EndIndent
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.SpaceBefore
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.SpaceAfter
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.AutoHyphenate
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.HyphenatedWordSize
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.PreHyphen
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.PostHyphen
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.ConsecutiveHyphens
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.Zone
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.WordSpacing
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.LetterSpacing
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.GlyphSpacing
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.AutoLeading
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.LeadingType
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.Hanging
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.Burasagari
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.KinsokuOrder
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.EveryLineComposer
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.Apply(Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph)
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph.IsEqual(Aspose.PSD.FileFormats.Psd.Layers.Text.ITextParagraph)
- T:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextPortion
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextPortion.Text
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextPortion.Style
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextPortion.Paragraph
- T:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FontSize
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.AutoLeading
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Leading
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Tracking
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Kerning
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.FillColor
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.StrokeColor
- P:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.HindiNumbers
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.Apply(Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle)
- M:Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle.IsEqual(Aspose.PSD.FileFormats.Psd.Layers.Text.ITextStyle)
- P:Aspose.PSD.FileFormats.Psd.Layers.TextLayer.TextData
- P:Aspose.PSD.FileFormats.Psd.Layers.FillSettings.IGradientFillSettings.Scale
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.GdFlResource.Scale
- P:Aspose.PSD.FileFormats.Psd.Layers.FillSettings.GradientFillSettings.Scale
Verwijderde API’s:
- Geen
Gebruik voorbeelden:
PSDNET-160. Verkeerde laagnaam geëxtraheerd
Om de laagnaam correct weer te geven, gebruik de DisplayName eigenschap. Er is nu een setter toegevoegd voor deze eigenschap en de eigenschap kan worden aangepast. Wanneer Photoshop de laagnaam opslaat met behulp van de Naam eigenschap, worden de Koreaanse karakters opgeslagen als byte 63'?' in ASCII. Gebruik de DisplayName eigenschap omdat de Naam eigenschap geen Koreaanse karakters ondersteunt.
// wijzigingen aanbrengen in laagnamen en opslaan
using (var afbeelding = (PsdImage)Image.Load("lagen met namen.psd"))
{
for (int i = 0; i < afbeelding.Lagen.Length; i++)
{
var laag = afbeelding.Lagen[i];
// nieuwe waarde instellen in DisplayName eigenschap
laag.DisplayName += "_gewijzigd";
}
afbeelding.Save("output.psd");
}
PSDNET-175. Eigenschappen van tekst verkrijgen uit een ander deel van tekst binnen PSD TextLayer
const double Tolerantie = 0.0001;
var bestandsnaam = "DrieKleurParagrafen.psd";
var uitvoerpad = "DrieKleurParagrafen_uit.psd";
using (var im = (PsdImage)Image.Load(bestandsnaam))
{
for (int i = 0; i < im.Lagen.Length; i++)
{
var laag = im.Lagen[i] as TextLayer;
if (laag != null)
{
var gedeelten = laag.TextData.Items;
if (gedeelten.Length != 4)
{
throw new Exception();
}
// Tekst van elk gedeelte controleren
if (gedeelten[0].Text != "Oud " ||
gedeelten[1].Text != "kleur" ||
gedeelten[2].Text != " tekst\r" ||
gedeelten[3].Text != "Tweede alinea\r")
{
throw new Exception();
}
// Paragraafgegevens controleren
// Paragrafen hebben verschillende rechtvaardiging
if (
gedeelten[0].Paragraaf.Rechtvaardiging != 0 ||
gedeelten[1].Paragraaf.Rechtvaardiging != 0 ||
gedeelten[2].Paragraaf.Rechtvaardiging != 0 ||
gedeelten[3].Paragraaf.Rechtvaardiging != 2)
{
throw new Exception();
}
// Alle andere eigenschappen van de eerste en tweede alinea zijn gelijk
for (int j = 0; j < gedeelten.Length; j++)
{
var paragraaf = gedeelten[j].Paragraaf;
if (Math.Abs(paragraaf.AutoLeading - 1.2) > Tolerantie ||
paragraaf.AutoHyphenate != false ||
paragraaf.Burasagari != false ||
paragraaf.ConsecutiveHyphens != 8 ||
Math.Abs(paragraaf.StartIndent) > Tolerantie ||
Math.Abs(paragraaf.EndIndent) > Tolerantie ||
paragraaf.EveryLineComposer != false ||
Math.Abs(paragraaf.FirstLineIndent) > Tolerantie ||
paragraaf.GlyphSpacing.Length != 3 ||
Math.Abs(paragraaf.GlyphSpacing[0] - 1) > Tolerantie ||
Math.Abs(paragraaf.GlyphSpacing[1] - 1) > Tolerantie ||
Math.Abs(paragraaf.GlyphSpacing[2] - 1) > Tolerantie ||
paragraaf.Hanging != false ||
paragraaf.HyphenatedWordSize != 6 ||
paragraaf.KinsokuOrder != 0 ||
paragraaf.LetterSpacing.Length != 3 ||
Math.Abs(paragraaf.LetterSpacing[0]) > Tolerantie ||
Math.Abs(paragraaf.LetterSpacing[1]) > Tolerantie ||
Math.Abs(paragraaf.LetterSpacing[2]) > Tolerantie ||
paragraaf.LeadingType != LeadingMode.Auto ||
paragraaf.PreHyphen != 2 ||
paragraaf.PostHyphen != 2 ||
Math.Abs(paragraaf.SpaceBefore) > Tolerantie ||
Math.Abs(paragraaf.SpaceAfter) > Tolerantie ||
paragraaf.WordSpacing.Length != 3 ||
Math.Abs(paragraaf.WordSpacing[0] - 0.8) > Tolerantie ||
Math.Abs(paragraaf.WordSpacing[1] - 1.0) > Tolerantie ||
Math.Abs(paragraaf.WordSpacing[2] - 1.33) > Tolerantie ||
Math.Abs(paragraaf.Zone - 36.0) > Tolerantie)
{
throw new Exception();
}
}
// Stijlgegevens controleren
// Stijlen hebben verschillende kleuren en lettergrootte
if (Math.Abs(gedeelten[0].Stijl.FontGrootte - 12) > Tolerantie ||
Math.Abs(gedeelten[1].Stijl.FontGrootte - 12) > Tolerantie ||
Math.Abs(gedeelten[2].Stijl.FontGrootte - 12) > Tolerantie ||
Math.Abs(gedeelten[3].Stijl.FontGrootte - 10) > Tolerantie)
{
throw new Exception();
}
if (gedeelten[0].Stijl.VulKleur != Kleur.FromArgb(255, 145, 0, 0) ||
gedeelten[1].Stijl.VulKleur != Kleur.FromArgb(255, 201, 128, 2) ||
gedeelten[2].Stijl.VulKleur != Kleur.FromArgb(255, 18, 143, 4) ||
gedeelten[3].Stijl.VulKleur != Kleur.FromArgb(255, 145, 42, 100))
{
throw new Exception();
}
for (int j = 0; j < gedeelten.Length; j++)
{
var stijl = gedeelten[j].Stijl;
if (stijl.AutoLeading != false ||
stijl.HindiNummers != false ||
stijl.Spatiëring != 0 ||
stijl.Leidende != 0 ||
stijl.StreekKleur != Kleur.FromArgb(255, 175, 90, 163) ||
stijl.Opvolging != 50)
{
throw new Exception();
}
}
// Voorbeeld van tekstbewerking
gedeelten[0].Tekst = "Hallo ";
gedeelten[1].Tekst = "Wereld";
// Voorbeeld van verwijderen van tekstgedeelten
laag.TextData.RemovePortion(3);
laag.TextData.RemovePortion(2);
// Voorbeeld van toevoegen van nieuw tekstgedeelte
var aangemaaktGedeelte = laag.TextData.ProducePortion();
aangemaaktGedeelte.Tekst = "!!!\r";
laag.TextData.AddPortion(aangemaaktGedeelte);
gedeelten = laag.TextData.Items;
// Voorbeeld van alinea- en stijlbewerking voor gedeelten
// Rechtvaardiging instellen
gedeelten[0].Paragraaf.Rechtvaardiging = 1;
gedeelten[1].Paragraaf.Rechtvaardiging = 1;
gedeelten[2].Paragraaf.Rechtvaardiging = 1;
// Verschillende kleuren voor elke stijl. Ze zullen veranderen, maar de weergave wordt niet volledig ondersteund
gedeelten[0].Stijl.VulKleur = Kleur.Aquamarijn;
gedeelten[1].Stijl.VulKleur = Kleur.Violet;
gedeelten[2].Stijl.VulKleur = Kleur.Lichtblauw;
// Verschillend lettertype. Ze zullen veranderen, maar de weergave wordt niet volledig ondersteund
gedeelten[0].Stijl.FontGrootte = 6;
gedeelten[1].Stijl.FontGrootte = 8;
gedeelten[2].Stijl.FontGrootte = 10;
laag.TextData.UpdateLayerData();
im.Save(uitvoerpad, new PsdOptions(im));
break;
}
}
}
PSDNET-190. Ondersteuning voor Toevoegen laaggroep
// -Groep 1
// --Laag 1
// --Groep 2
// ---Laag 2
// ---Laag 3
// --Laag 4
string databestand = "psdnet190_test.psd";
var maakOpties = new PsdOptions();
maakOpties.Bron = new BestandCreateSource(databestand, false);
maakOpties.Palet = new PsdColorPalet(new Kleur[] { Kleur.Groen });
using (var psdAfbeelding = (PsdAfbeelding)Afbeelding.Create(maakOpties, 500, 500))
{
Laaggroep groep1 = psdAfbeelding.AddLaaggroep("Groep 1", 0, true);
Laag laag1 = new Laag(psdAfbeelding);
laag1.Naam = "Laag 1";
groep1.AddLaag(laag1);
Laaggroep groep2 = groep1.AddLaaggroep("Groep 2", 1);
Laag laag2 = new Laag(psdAfbeelding);
laag2.Naam = "Laag 2";
groep2.AddLaag(laag2);
Laag laag3 = new Laag(psdAfbeelding);
laag3.Naam = "Laag 3";
groep2.AddLaag(laag3);
Laag laag4 = new Laag(psdAfbeelding);
laag4.Naam = "Laag 4";
groep1.AddLaag(laag4);