Aspose.PSD за .NET 22.1 - Забележки за изданието
Contents
[
Hide
]
Тази страница съдържа забележки за изданието на Aspose.PSD за .NET 22.1
Ключ | Резюме | Категория |
---|---|---|
PSDNET-1017 | Мозайка може да бъде приложена само веднъж | Проблем |
PSDNET-1056 | Преливат временни файлове при отваряне на файл от поток | Проблем |
PSDNET-991 | Оптимизация на рендерирането за Гаусово размазване в интелигентен филтър | Функционалност |
PSDNET-1044 | Поддръжка на множество данни за шаблони в PattResource | Функционалност |
Промени в общественото API
Добавени API:
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.#ctor(System.Int32,Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData[])
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Patterns
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.TypeToolKey2
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.TypeToolKey3
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.#ctor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Version
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.ImageMode
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Width
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Height
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Name
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.PatternId
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.PatternData
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Length
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Save(Aspose.PSD.StreamContainer)
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.SetPattern(System.Int32[],Aspose.PSD.Rectangle)
Премахнати API:
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.#ctor(System.Byte[])
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PatternData
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PatternId
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Name
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Height
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Width
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.ImageMode
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Version
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.PatternLength
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.SetPattern(System.Int32[],Aspose.PSD.Rectangle)
Примери за използване:
PSDNET-1017. Мозайка може да бъде приложена само веднъж
string изходноPsd = "изход_1017.psd";
string изходноPng = "изход_1017.png";
using (var psdImage = (PsdImage)Image.Create(new PsdOptions() { Source = new StreamSource(new MemoryStream()), }, 500, 500))
{
FillLayer layer = FillLayer.CreateInstance(FillType.Color);
psdImage.AddLayer(layer);
VectorPath vectorPath = VectorDataProvider.CreateVectorPathForLayer(layer);
vectorPath.FillColor = Color.Yellow;
PathShape shape2 = new PathShape();
shape2.Points.Add(new BezierKnot(new PointF(300, 150), true));
shape2.Points.Add(new BezierKnot(new PointF(350, 200), true));
shape2.Points.Add(new BezierKnot(new PointF(250, 200), true));
shape2.IsClosed = false;
vectorPath.Shapes.Add(shape2);
VectorDataProvider.UpdateLayerFromVectorPath(layer, vectorPath, true);
PatternOverlayEffect patternOverlay = layer.BlendingOptions.AddPatternOverlay();
var новШаблон = new int[]
{
Color.Aqua.ToArgb(), Color.Red.ToArgb(), Color.Red.ToArgb(),
Color.Aqua.ToArgb(), Color.Aqua.ToArgb(), Color.White.ToArgb(),
Color.White.ToArgb(), Color.Aqua.ToArgb(),
};
var новаГранициНаШаблона = new Rectangle(0, 0, 4, 2);
patternOverlay.Settings.PatternData = новШаблон;
patternOverlay.Settings.PatternWidth = новаГранициНаШаблона.Width;
patternOverlay.Settings.PatternHeight = новаГранициНаШаблона.Height;
patternOverlay.Settings.HorizontalOffset = новаГранициНаШаблона.X;
patternOverlay.Settings.VerticalOffset = новаГранициНаШаблона.Y;
layer.Update();
var layer2 = FillLayer.CreateInstance(FillType.Color);
psdImage.AddLayer(layer2);
VectorPath vectorPath2 = VectorDataProvider.CreateVectorPathForLayer(layer2);
vectorPath2.FillColor = Color.Blue;
PathShape shape3 = new PathShape();
shape3.Points.Add(new BezierKnot(new PointF(400, 450), true));
shape3.Points.Add(new BezierKnot(new PointF(100, 400), true));
shape3.Points.Add(new BezierKnot(new PointF(250, 100), true));
shape3.IsClosed = false;
vectorPath2.Shapes.Add(shape3);
VectorDataProvider.UpdateLayerFromVectorPath(layer2, vectorPath2, true);
PatternOverlayEffect patternOverlay2 = layer2.BlendingOptions.AddPatternOverlay();
var новШаблон2 = new int[]
{
Color.Green.ToArgb(), Color.Purple.ToArgb(), Color.Purple.ToArgb(),
Color.Green.ToArgb(), Color.Green.ToArgb(), Color.Black.ToArgb(),
Color.Black.ToArgb(), Color.Green.ToArgb(),
};
var новаГранициНаШаблона2 = new Rectangle(0, 0, 4, 2);
patternOverlay2.Settings.PatternData = новШаблон2;
patternOverlay2.Settings.PatternWidth = новаГранициНаШаблона2.Width;
patternOverlay2.Settings.PatternHeight = новаГранициНаШаблона2.Height;
patternOverlay2.Settings.HorizontalOffset = новаГранициНаШаблона2.X;
patternOverlay2.Settings.VerticalOffset = новаГранициНаШаблона2.Y;
psdImage.Save(изходноPsd);
psdImage.Save(изходноPng, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
PSDNET-1056. Преливат временни файлове при отваряне на файл от поток
using (var memStream = new MemoryStream())
{
byte[] fileBytes = new byte[3];
memStream.Write(fileBytes, 0, fileBytes.Length);
// test behaviour
Exception exception = null;
try
{
using (var image = Image.Load(memStream))
{
}
}
catch (CoreExceptions.ImageLoadException mainEx)
{
// search lowest level exception
exception = mainEx;
while (exception.InnerException != null)
{
exception = exception.InnerException;
}
}
// check exception
string typeName = exception.GetType().Name; // for debugging
if (exception is CoreExceptions.ImageLoadException)
{
// it's OK
}
else
{
// it's not OK
throw exception;
}
}
PSDNET-991. Оптимизация на рендерирането за Гаусово размазване в интелигентен филтър
string източенФилтe = "psdnet991_layers.psd";
string изходноPsd = "изход_psdnet991_layers.psd";
string изходноPng = "изход_psdnet991_layers.png";
using (var image = (PsdImage)Image.Load(източенФилтe))
{
SmartObjectLayer smartLayer = (SmartObjectLayer)image.Layers[1];
Layer maskLayer = image.Layers[2];
Layer regularLayer = image.Layers[3];
GaussianBlurSmartFilter gaussianBlur = new GaussianBlurSmartFilter();
gaussianBlur.Radius = 10;
// Apply filter to SmartObject
gaussianBlur.Apply(smartLayer);
smartLayer.SmartFilters.UpdateResourceValues();
smartLayer.UpdateModifiedContent();
// Apply filter to layer mask
gaussianBlur.ApplyToMask(maskLayer);
//Apply filter to layer
gaussianBlur.Apply(regularLayer);
image.Save(изходноPsd);
image.Save(изходноPng, new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
}
PSDNET-1044. Поддръжка на множество данни за шаблони в PattResource
string src = "psdnet1044.psd";
string output = "out_psdnet1044.psd";
using (var image = (PsdImage)Image.Load(src, new PsdLoadOptions() { LoadEffectsResource = true }))
{
PattResource pattResource = (PattResource)image.GlobalLayerResources[0];
if (pattResource.Patterns.Length == 2)
{
Console.WriteLine("Правилното четене на елементите на PattResourceData.");
}
var fillLayer = FillLayer.CreateInstance(FillType.Color);
image.AddLayer(fillLayer);
IPatternFillSettings pattSetting = fillLayer.BlendingOptions.AddPatternOverlay().Settings;
pattSetting.PatternWidth = 3;
pattSetting.PatternHeight = 3;
pattSetting.PatternData = new int[]
{
Color.White.ToArgb(), Color.White.ToArgb(), Color.Red.ToArgb(),
Color.White.ToArgb(), Color.Green.ToArgb(), Color.White.ToArgb(),
Color.Blue.ToArgb(), Color.White.ToArgb(), Color.White.ToArgb(),
};
image.Save(output);
}
Промени в общественото API
Добавени API:
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.#ctor(System.Double,Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData[])
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.Patterns
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.TypeToolKey2
- F:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.TypeToolKey3
- T:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.#ctor
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Version
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.ImageMode
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Width
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Height
- P:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResourceData.Name
- …
Премахнати API:
- M:Aspose.PSD.FileFormats.Psd.Layers.LayerResources.PattResource.#ctor(System.Char[])
- …
Примери за използване:
PSDNET-1056. Преливат временни файлове при отваряне на файл от поток
using (var memStream = new MemoryStream())
{
byte[] fileBytes = new byte[3];
memStream.Write(fileBytes, 0, fileBytes.Length);
...
}
PSDNET-1044. Поддръжка на множество данни за шаблони в PattResource
string източник = "psdnet1044.psd";
string изход = "изход_psdnet1044.psd";
using (var изображение = (PsdImage)Image.Load(източник, new PsdLoadOptions() { LoadEffectsResource = true }))
{
PattResource pattResource = (PattResource)изображение.GlobalLayerResources[0];
...
image.Save(изход);
}