Aspose.PSD voor .NET 22.7 - Release-opmerkingen
Contents
[
Hide
]
Deze pagina bevat release-opmerkingen voor Aspose.PSD voor .NET 22.7
Sleutel | Samenvatting | Categorie |
---|---|---|
PSDNET-482 | Ondersteuning van Beeldsectie Resource #4000-4999 Plug-In resource(s) | Functie |
PSDNET-875 | Een niet-afgehandelde uitzondering van het type “System.OutOfMemoryException” treedt op in Aspose.PSD.dll | Fout |
PSDNET-1050 | Na het exporteren van het PSD-bestand is het resultaat veel groter dan het brondocument | Fout |
PSDNET-1083 | Onjuiste parsing van gegevens voor XmpResource | Fout |
PSDNET-1205 | Na exporteren is de grootte van PSD-bestanden met submappen toegenomen | Fout |
Wijzigingen in de openbare API
Toegevoegde API’s:
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.AnimatedDataSectionStructure
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.AnimatedDataSectionStructure.Key
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.AnimatedDataSectionStructure.Length
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.AnimatedDataSectionStructure.Items
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.AnimatedDataSectionStructure.SaveData(Aspose.PSD.StreamContainer)
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.AnimatedDataSectionStructure.StructureKey
- T:Aspose.PSD.FileFormats.Psd.Resources.AnimatedDataSectionResource
- P:Aspose.PSD.FileFormats.Psd.Resources.AnimatedDataSectionResource.DataSize
- P:Aspose.PSD.FileFormats.Psd.Resources.AnimatedDataSectionResource.MinimalVersion
- P:Aspose.PSD.FileFormats.Psd.Resources.AnimatedDataSectionResource.KeyName
- P:Aspose.PSD.FileFormats.Psd.Resources.AnimatedDataSectionResource.AnimatedDataSection
- M:Aspose.PSD.FileFormats.Psd.Resources.AnimatedDataSectionResource.SaveData(Aspose.PSD.StreamContainer)
Verwijderde API’s:
- Geen
Gebruik voorbeelden:
PSDNET-482. Ondersteuning van Beeldsectie Resource #4000-4999 Plug-In resource(s)
// De volgende code toont hoe de vertragingstijd in de tijdlijnkader van geanimeerde gegevens ingesteld/bijgewerkt kan worden.
string bronBestand = "3_animated.psd";
string uitvoerPsd = "uitvoer_3_animated.psd";
T VindStructuur<T>(IEnumerable<OSTypeStructure> structuren, string keyNaam) where T : OSTypeStructure
{
foreach (var structuur in structuren)
{
if (structuur.KeyName.ClassName == keyNaam)
{
return structuur as T;
}
}
return null;
}
OSTypeStructure[] ToevoegenOfVervangenStructuur(IEnumerable<OSTypeStructure> structuren, OSTypeStructure nieuweStructuur)
{
List<OSTypeStructure> lijstVanStructuren = new List<OSTypeStructure>(structuren);
for (int i = 0; i < lijstVanStructuren.Count; i++)
{
OSTypeStructure structuur = lijstVanStructuren[i];
if (structuur.KeyName.ClassName == nieuweStructuur.KeyName.ClassName)
{
lijstVanStructuren.RemoveAt(i);
break;
}
}
lijstVanStructuren.Add(nieuweStructuur);
return lijstVanStructuren.ToArray();
}
using (PsdImage afbeelding = (PsdImage)Image.Load(bronBestand))
{
foreach (var afbeeldingsResource in afbeelding.ImageResources)
{
if (afbeeldingsResource is AnimatedDataSectionResource)
{
var geanimeerdeData =
(AnimatedDataSectionStructure) (afbeeldingsResource as AnimatedDataSectionResource).AnimatedDataSection;
var framesLijst = VindStructuur<ListStructure>(geanimeerdeData.Items, "FrIn");
var kader1 = (DescriptorStructure)framesLijst.Types[1];
// Maakt het kadervertraging record met waarde 100 centi-seconde dat gelijk is aan 1 seconde.
var kaderVertraging = new IntegerStructure(new ClassID("FrDl"));
kaderVertraging.Value = 100; // instellen van tijd in centi-seconden.
kader1.Structuren = ToevoegenOfVervangenStructuur(kader1.Structuren, kaderVertraging);
break;
}
}
afbeelding.Save(uitvoerPsd);
}
PSDNET-875. Een niet-afgehandelde uitzondering van het type “System.OutOfMemoryException” treedt op in Aspose.PSD.dll
string srcBestand = "001-.psd";
string jpgBestandsPad = "T_0003.jpg";
string uitvoerBestandsPad = "uitvoer_nieuwPsd.psd";
using (var im = (PsdImage)Image.Load(srcBestand))
{
using (FileStream fs = new FileStream(jpgBestandsPad, FileMode.Open))
{
var nieuweLaag = new Aspose.PSD.FileFormats.Psd.Layers.Layer(fs);
nieuweLaag.DisplayName = "NieuweLaag";
im.AddLayer(nieuweLaag);
im.Save(uitvoerBestandsPad, true);
}
}
PSDNET-1050. Na het exporteren van het PSD-bestand is het resultaat veel groter dan het brondocument
string bron = "ShimadzuLetterhead100.psd";
string uitvoer = "uitvoer.psd";
using (var afb = (PsdImage)Image.Load(bron))
{
afb.Save(uitvoer);
}
double uitvoerGrootteMb = new FileInfo(uitvoer).Length / 1024d / 1024d;
if (uitvoerGrootteMb > 6)
{
throw new Exception("Het uitvoerbestand is groter dan zou moeten zijn.");
}
PSDNET-1083. Onjuiste parsing van gegevens voor XmpResource
string invoerPsdAfbeeldingPad = @"invoer.psd";
string opgeslagenPsdAfbeeldingPad = @"opgeslagen.psd";
bool isOrigineelBevatten = false;
bool isOpgeslagenBevatten = false;
// Zoek de sub-XMP-sleutel in het invoerbestand.
using (PsdImage img = (PsdImage)Image.Load(invoerPsdAfbeeldingPad))
{
foreach (var pakket in img.XmpData.Packages)
{
foreach (var pak in pakket)
{
if (pak.Value is XmpArray)
{
XmpArray xmpArray = (XmpArray)pak.Value;
string xmlWaarde = xmpArray.GetXmlValue();
if (xmlWaarde.Contains("<photoshop:LayerName>test1</photoshop:LayerName>"))
{
isOrigineelBevatten = true;
break;
}
}
}
if (isOrigineelBevatten)
{
break;
}
}
img.Save(opgeslagenPsdAfbeeldingPad);
}
// Zoek de sub-XMP-sleutel in het opgeslagen bestand.
using (PsdImage img = (PsdImage)Image.Load(opgeslagenPsdAfbeeldingPad))
{
foreach (var pakket in img.XmpData.Packages)
{
foreach (var pak in pakket)
{
if (pak.Value is XmpArray)
{
XmpArray xmpArray = (XmpArray)pak.Value;
string xmlWaarde = xmpArray.GetXmlValue();
if (xmlWaarde.Contains("<photoshop:LayerName>test1</photoshop:LayerName>"))
{
isOpgeslagenBevatten = true;
break;
}
}
}
if (isOpgeslagenBevatten)
{
break;
}
}
img.Save(opgeslagenPsdAfbeeldingPad);
}
if (isOrigineelBevatten && isOpgeslagenBevatten)
{
// Alles is in orde!
}
else
{
throw new Exception("Het werkt niet");
}
PSDNET-1205. Na exporteren is de grootte van PSD-bestanden met submappen toegenomen
string[] bronBestanden = new string[] { "1lvlFoldersTest.psd", "5lvlFoldersTest.psd"};
foreach (var bestandsNaam in bronBestanden)
{
string bronBestandPad = bestandsNaam;
string uitvoerBestandPad = "uitvoer_" + bestandsNaam;
using (PsdImage afbeelding = (PsdImage)Image.Load(bronBestandPad))
{
afbeelding.Save(uitvoerBestandPad);
}
double uitvoerGrootteMb = new FileInfo(uitvoerBestandPad).Length / 1024d / 1024d;
if (uitvoerGrootteMb > 1.9)
{
throw new Exception("Het uitvoerbestand is groter dan zou moeten zijn.");
}
}