บันทึกการอัปเดต Aspose.PSD for .NET 21.9
Contents
[
Hide
]
หน้านี้มีบันทึกการอัปเดตสำหรับ Aspose.PSD for .NET 21.9
คีย์ | สรุป | หมวดหมู่ |
---|---|---|
PSDNET-574 | ทำให้การบีบอัด RLE เป็นค่าเริ่มต้นสำหรับการบันทึก PSD เพื่อหลีกเลี่ยงการสร้างไฟล์ PSD ที่ใหญ่เกินไป | คุณลักษณะ |
PSDNET-747 | รองรับ Overlay Pattern Layer Effects ด้วยโหมดสี multichannel ในไฟล์ PSD | คุณลักษณะ |
PSDNET-951 | หลังจากสร้างเลเยอร์ใหม่แล้ว Properties ของมันจะเป็นค่าว่างซึ่งทำให้ไม่สามารถทำการจัดการ (เช่นการปรับขนาด) | บั๊ก |
PSDNET-955 | ไม่รองรับวิธีการบีบอัด ZipWithPrediction สำหรับ 8 บิต | บั๊ก |
การเปลี่ยนแปลงสาธารณะใน API
API ที่เพิ่มเข้ามา:
- ไม่มี
API ที่ถูกเอาออก:
- ไม่มี
ตัวอย่างการใช้:
PSDNET-574. ทำให้ RLE Compression เป็นค่าเริ่มต้นสำหรับการบันทึก PSD เพื่อหลีกเลี่ยงไฟล์ PSD ที่ใหญ่เกินไป
string inputFilePath = "file.psd";
string output1 = "output_original.psd";
string output2 = "output_psdOptions.psd";
using (Image image = Image.Load(inputFilePath))
{
image.Save(output1);
image.Save(output2, new PsdOptions());
}
PSDNET-747. รองรับ Overlay Pattern Layer Effects ด้วยโหมดสี multichannel ในไฟล์ PSD
var fileName = "AllEffects.psd";
var outputFile = "AllEffects_out.psd";
var loadOptions = new PsdLoadOptions()
{
LoadEffectsResource = true
};
// ไม่ควรเกิดข้อผิดพลาด
using (var im = Image.Load(fileName, loadOptions))
{
// ไม่ควรเกิดข้อผิดพลาด
im.Save(outputFile);
}
PSDNET-951. หลังจากสร้างเลเยอร์ใหม่ Properties ของมันจะเป็นค่าว่างซึ่งทำให้ไม่สามารถทำการจัดการ (เช่นการปรับขนาด)
string PSDFile = "Layer1.psd";
string layer1File = "Layer2.png";
string layer2File = "Layer3.png";
string outFileName = "finaloutput.psd";
void ReplaceColor(RasterImage image, Color oldColor, int diff, Color newColor)
{
var pixels = image.LoadArgb32Pixels(image.Bounds);
var length = pixels.Length;
var oldR = oldColor.R;
var oldG = oldColor.G;
var oldB = oldColor.B;
var newColorValue = newColor.ToArgb();
for (int i = 0; i < length; i++)
{
// สีแดง
var r = (byte)((pixels[i] >> 16) & 0xff);
// สีเขียว
var g = (byte)((pixels[i] >> 8) & 0xff);
// สีน้ำเงิน
var b = (byte)(pixels[i] & 0xff);
int actualDiff = Math.Abs(r - oldR) + Math.Abs(g - oldG) + Math.Abs(b - oldB);
if (actualDiff <= diff)
{
pixels[i] = newColorValue;
}
}
image.SaveArgb32Pixels(image.Bounds, pixels);
}
Layer Layer2 = null;
Layer Layer3 = null;
using (PsdImage image = (PsdImage)Image.Load(PSDFile))
{
#region เพิ่มเลเยอร์ 1
using (var stream = new FileStream(layer1File, FileMode.Open))
{
Layer2 = new Layer(stream);
Layer2.Resize(image.Width, image.Height);
var width = Layer2.Width;
var height = Layer2.Height;
Layer2.Left = 675;
Layer2.Top = 0;
Layer2.Right = Layer2.Left + width;
Layer2.Bottom = Layer2.Top + height;
image.AddLayer(Layer2);
}
#endregion
using (var stream = new FileStream(layer2File, FileMode.Open))
{
Layer3 = new Layer(stream);
// แทนที่สีขาวด้วยสีโปร่งใส
ReplaceColor(Layer3, Color.White, 256, Color.Transparent);
Layer2.DrawImage(new Point(0, 0), Layer3);
}
image.Save(outFileName, new PsdOptions());
}
PSDNET-955. ไม่รองรับวิธีการบีบอัด ZipWithPrediction สำหรับ 8 บิต
string inputFilePath = "zipTest698.psd";
string outputZip8 = "out_Zip8bit.psd";
string outputZip16 = "out_Zip16bit.psd";
using (PsdImage image = (PsdImage)Image.Load(inputFilePath))
{
image.Save(outputZip8, new PsdOptions() { CompressionMethod = CompressionMethod.ZipWithPrediction, ChannelBitsCount = 8 });
image.Save(outputZip16, new PsdOptions() { CompressionMethod = CompressionMethod.ZipWithPrediction, ChannelBitsCount = 16 });
}