Aspose.PSD voor .NET 24.5 - Release-opmerkingen
Contents
[
Hide
]
Deze pagina bevat release-opmerkingen voor Aspose.PSD voor .NET 24.5
Sleutel | Samenvatting | Categorie |
---|---|---|
PSDNET-1897 | [AI-indeling] Ondersteuning toegevoegd voor het verwerken van AI-bestanden met EPSF-koptekst | Functie |
PSDNET-1755 | Halfdoorzichtigheid wordt verkeerd verwerkt bij de voorbeeldweergave van het psd-bestand | Fout |
PSDNET-1942 | Renderng van vormlaag gedeeltelijk onjuist | Fout |
PSDNET-1957 | Uitzondering bij het opslaan van PSD-bestanden met een grootte groter dan 200 MB en grote afmetingen | Fout |
PSDNET-1998 | Fout bij het opslaan van afbeelding uitzondering bij opslaan naar PDF na update van 23.7 naar 24.3 | Fout |
PSDNET-2033 | Probleem in de methode GetFontInfoRecords oplossen voor de Chinese lettertypen | Fout |
Wijzigingen in openbare API
Toegevoegde API’s:
- P:Aspose.PSD.Afbeeldingsopties.PsdOpties.AchtergrondInhoud
- P:Aspose.PSD.Bestandsindelingen.Ai.AiLaagSectie.HeeftMeerdereLaagmaskers
- P:Aspose.PSD.Bestandsindelingen.Ai.AiLaagSectie.KleurIndex
Verwijderde API’s:
- Geen
Gebruik voorbeelden:
PSDNET-1755. Halfdoorzichtigheid wordt verkeerd verwerkt bij de voorbeeldweergave van het psd-bestand
// Halfdoorzichtigheid wordt verkeerd verwerkt bij de voorbeeldweergave van het psd-bestand.
// AchtergrondInhoud toegewezen aan Wit. Transparante gebieden moeten een witte kleur hebben.
string bronBestand = Path.Combine(basisMap, "frog_nosymb.psd");
string uitvoerBestand = Path.Combine(uitvoerMap, "frog_nosymb_backgroundcontents_output.psd");
using (PsdImage psdAfbeelding = (PsdImage)Afbeelding.Laden(bronBestand))
{
RawColor achtergrondKleur = new RawColor(PixelDataFormat.Rgb32Bpp);
int argbWaarde = 255 << 24 | 255 << 16 | 255 << 8 | 255;
achtergrondKleur.StelInAlsInt(argbWaarde); // Wit
PsdOpties psdOpties = new PsdOpties(psdAfbeelding)
{
KleurenModus = KleurModi.Rgb,
CompressieMethode = CompressieMethode.RLE,
AantalKanalen = 4,
AchtergrondInhoud = achtergrondKleur,
};
psdAfbeelding.Opslaan(uitvoerBestand, psdOpties);
}
PSDNET-1897. [AI-indeling] Ondersteuning toegevoegd voor het verwerken van AI-bestanden met EPSF-koptekst
string bronBestand = Path.Combine(basisMap, "voorbeeld.ai");
string uitvoerBestandPad = Path.Combine(uitvoerMap, "voorbeeld.png");
void AssertAreEqual(object verwacht, object werkelijk)
{
if (!object.Equals(verwacht, werkelijk))
{
throw new Exception("Objecten zijn niet gelijk.");
}
}
using (AiAfbeelding afbeelding = (AiAfbeelding)Afbeelding.Laden(bronBestand))
{
AssertAreEqual(afbeelding.Lagen.Lengte, 2);
AssertAreEqual(afbeelding.Lagen[0].HeeftMeerdereLaagmaskers, false);
AssertAreEqual(afbeelding.Lagen[0].KleurIndex, -1);
AssertAreEqual(afbeelding.Lagen[1].HeeftMeerdereLaagmaskers, false);
AssertAreEqual(afbeelding.Lagen[1].KleurIndex, -1);
afbeelding.Opslaan(uitvoerBestandPad, new PngOpties());
}
PSDNET-1942. Renderng van vormlaag gedeeltelijk onjuist
string bronBestand = Path.Combine(basisMap, "ShapeLayerTest.psd");
string uitvoerBestand = Path.Combine(uitvoerMap, "ShapeLayerTest_output.psd");
const int ImgTotPsdRatio = 256 * 65535;
using (var im = (PsdImage)Afbeelding.Laden(bronBestand))
{
ShapeLayer vormLaag = (ShapeLayer)im.Lagen[2];
IPath pad = vormLaag.Pad;
IPathShape[] padVormen = pad.GetItems();
List<BezierKnotRecord> knopenLijst = new List<BezierKnotRecord>();
foreach (IPathShape padVorm in padVormen)
{
BezierKnotRecord[] knopen = padVorm.GetItems();
knopenLijst.AddRange(knopen);
}
// Laageigenschappen wijzigen
var nieuweVorm = new PathShape();
BezierKnotRecord[] bezierKnopen = new BezierKnotRecord[]
{
new BezierKnotRecord()
{
IsGelinkt = true,
Punten = new Point[3]
{
PointFNaarResourcePunt(
new PointF(100, 100),
vormLaag.Container.Grootte),
PointFNaarResourcePunt(
new PointF(100, 100),
vormLaag.Container.Grootte),
PointFNaarResourcePunt(
new PointF(100, 100),
vormLaag.Container.Grootte),
},
},
new BezierKnotRecord()
{
IsGelinkt = true,
Punten = new Point[3]
{
PointFNaarResourcePunt(
new PointF(50, 490),
vormLaag.Container.Grootte),
PointFNaarResourcePunt(
new PointF(100, 490),
vormLaag.Container.Grootte), // Ankerpunt
PointFNaarResourcePunt(
new PointF(150, 490),
vormLaag.Container.Grootte),
},
},
new BezierKnotRecord()
{
IsGelinkt = true,
Punten = new Point[3]
{
PointFNaarResourcePunt(
new PointF(490, 150),
vormLaag.Container.Grootte),
PointFNaarResourcePunt(
new PointF(490, 50),
vormLaag.Container.Grootte),
PointFNaarResourcePunt(
new PointF(490, 20),
vormLaag.Container.Grootte),
},
},
};
nieuweVorm.SetItems(bezierKnopen);
List<IPathShape> nieuweVormen = new List<IPathShape>(padVormen);
nieuweVormen.Add(nieuweVorm);
IPathShape[] padVormNieuw = nieuweVormen.ToArray();
pad.SetItems(padVormNieuw);
vormLaag.Bijwerken();
im.Opslaan(uitvoerBestand, new PsdOpties());
}
using (var im = (PsdImage)Afbeelding.Laden(uitvoerBestand))
{
ShapeLayer vormLaag = (ShapeLayer)im.Lagen[2];
IPath pad = vormLaag.Pad;
IPathShape[] padVormen = pad.GetItems();
List<BezierKnotRecord> knopenLijst = new List<BezierKnotRecord>();
foreach (IPathShape padVorm in padVormen)
{
BezierKnotRecord[] knopen = padVorm.GetItems();
knopenLijst.AddRange(knopen);
}
AssertAreEqual(3, padVormen.Lengte);
AssertAreEqual(42, vormLaag.Links);
AssertAreEqual(14, vormLaag.Boven);
AssertAreEqual(1600, vormLaag.Grenzen.Breedte);
AssertAreEqual(1086, vormLaag.Grenzen.Hoogte);
}
Point PointFNaarResourcePunt(PointF punt, Grootte afbeeldingsGrootte)
{
return new Point(
(int)Math.Round(punt.Y * (ImgTotPsdRatio / afbeeldingsGrootte.Hoogte)),
(int)Math.Round(punt.X * (ImgTotPsdRatio / afbeeldingsGrootte.Breedte)));
}
void AssertAreEqual(object verwacht, object werkelijk, string bericht = null)
{
if (!object.Equals(verwacht, werkelijk))
{
throw new Exception(bericht ?? "Objecten zijn niet gelijk.");
}
}
PSDNET-1957. Uitzondering bij het opslaan van PSD-bestanden met een grootte groter dan 200 MB en grote afmetingen
string bronBestand = Path.Combine(basisMap, "grootbestand.psd");
string uitvoerBestand = Path.Combine(uitvoerMap, "output_raw.psd");
PsdOpties laadOpties = new PsdOpties()
{
LaadEffectenBron = true,
GebruikSchijfVoorLaadEffectenBron = true
};
using (var psdAfbeelding = (PsdAfbeelding)Afbeelding.Laden(bronBestand, laadOpties))
{
// Er zou hier geen fout mogen zijn
psdAfbeelding.Opslaan(uitvoerBestand, new PsdOpties { CompressieMethode = CompressieMethode.RLE });
}
PSDNET-1998. Fout bij het opslaan van afbeelding uitzondering bij opslaan naar PDF na update van 23.7 naar 24.3
string bronBestand = Path.Combine(basisMap, "CVFlor.psd");
string uitvoerBestand = Path.Combine(uitvoerMap, "_export.pdf");
using (var psdAfbeelding = (PsdAfbeelding)Afbeelding.Laden(bronBestand))
{
PdfOpties opslaanOpties = new PdfOpties();
opslaanOpties.PdfKernOpties = new PdfKernOpties();
psdAfbeelding.Opslaan(uitvoerBestand, opslaanOpties);
}
PSDNET-2033. Probleem in de methode GetFontInfoRecords oplossen voor de Chinese lettertypen
var lettertypeMap = Path.Combine(basisMap, "Lettertype");
string bronBestand = Path.Combine(basisMap, "bd-worlds-best-pink.psd");
PsdOpties psdLaadOpties = new PsdOpties();
psdLaadOpties.LaadEffectenBron = true;
psdLaadOpties.ToestaanWarpRepaint = true;
try
{
FontInstellingen.SetLettertypeMappen(new string[] { lettertypeMap }, true);
FontInstellingen.WerkLettertypenBij();
using (PsdAfbeelding afbeelding = (PsdAfbeelding)PsdAfbeelding.Laden(bronBestand, psdLaadOpties))
{
foreach (var laag in afbeelding.Lagen)
{
var tekstLaag = laag as TekstLaag;
if (tekstLaag != null)
{
if (tekstLaag.Tekst == "best")
{
// Zonder deze correctie zal hier een uitzondering zijn vanwege het Chinese lettertype.
tekstLaag.WerkTekstBij("SUСCESS");
}
}
}
}
}
finally
{
FontInstellingen.Reset();
FontInstellingen.WerkLettertypenBij();
}