מפתח | סיכום | קטגוריה |
---|---|---|
PSDNET-68 | תמיכה במאפיין LayerCreationDateTime. | תכונה |
PSDNET-67 | תמיכה בסימון צבע הדף | תכונה |
PSDNET-66 | יכולת למזג שכבות אחת לשניה | תכונה |
PSDNET-65 | הוספת תמיכה חלקית בנכס ה-BoundBox של שכבת הטקסט | תכונה |
PSDNET-64 | הוספת תמיכה ב-IopaResource | תכונה |
PSDNET-56 | תמיכה באפקטי שכבה עבור פורמט PSD | תכונה |
PSDNET-55 | תמיכה ב-InterruptMonitor עבור .Net | תכונה |
PSDNET-50 | יצירת אפשרות למיזוג שכבות | תכונה |
PSDNET-49 | הוספת תמיכה לעיבוד של מאפיין כסף במסכות. | תכונה |
PSDNET-43 | מימוש בעיבוד של שכבת תיקוני עקומות | תכונה |
PSDNET-42 | הוספת תמיכה בשכבת תיקוני עקומות | תכונה |
PSDNET-41 | מימוש בעיבוד של שכבת תיקוני רמות | תכונה |
PSDNET-40 | הוספת יכולת לבצע בעיבוד של שכבת תיקוני רמות | תכונה |
PSDNET-37 | הוספת תמיכה בשכבת עיצוב ערבוב צבעים | תכונה |
PSDNET-35 | הוספת תמיכה בשכבת תיקוני הוא/רוויות הצבע | תכונה |
PSDNET-34 | מימוש בעיבוד של שכבת עריכת חשיפה עבור יצוא | תכונה |
PSDNET-31 | הוספת תמיכה בעיבוד לייצוא שכבת תיקוני קומיקס | תכונה |
PSDNET-26 | הוספת תמיכה במסכת חיתוך | תכונה |
PSDNET-13 | הוספת תמיכה במסכת שכבה | תכונה |
PSDNET-9 | הוספת תמיכה בשכבת סנפילטר תמונה | תכונה |
PSDNET-8 | הוספת תמיכה בשכבת עיבוד שכבת מערבל צבעוניות | תכונה |
PSDNET-7 | הוספת תמיכה בשכבת עיבוד חשיפת צבעים | תכונה |
PSDNET-6 | הוספת תמיכה בשכבת עיבוד בהירות/ניגודיות | תכונה |
PSDNET-5 | הוספת תמיכה חלקית בשכבות התאמות | תכונה |
PSDNET-2 | יכולת להוסיף שכבת טקסט בזמן ריצה | תכונה |
PSDNET-62 | קודקוד ה-TIFF אינו יכול לשמור תמונת ערוץ 16-bit | שיפור |
PSDNET-61 | שמירת תמונת PSD יוצרת צבעים בלתי תקפים | שיפור |
PSDNET-60 | שימוש בפינות השמאלית העליונה בעדכון | שיפור |
PSDNET-59 | חריגה בעדכון מסמכי טקסט | שיפור |
PSDNET-58 | חשיפת שדה קודקוד לתמונת JPEG2000 לציבור | שיפור |
PSDNET-57 | תיקון הגדרות 24bpp לייצוא ל-BMP | שיפור |
PSDNET-46 | שכבת ההתאמה מתעלמת מהמרת PSD של CMYK ל-TIFF או JPG | שיפור |
דוגמאות שימוש:
PSDNET-68 תמיכה במאפיין LayerCreationDateTime
// דוגמא לשימוש במאפיין LayerCreationDateTime
מחרוזת שמקורית = "OneLayer.psd";
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var layer = im.Layers[0];
var creationDateTime = layer.LayerCreationDateTime;
var expectedDateTime = new DateTime(2018, 7, 17, 8, 57, 24, 769);
Assert.AreEqual(expectedDateTime, creationDateTime);
var now = DateTime.Now;
var createdLayer = im.AddLevelsAdjustmentLayer();
// בדיקה אם זמן יצירה מתעדכן על שכבות שנוצרו חדשות
Assert.True(now <= createdLayer.LayerCreationDateTime);
}
PSDNET-67 תמיכה בסימון צבע הדף
// דוגמא לשימוש בפונקציונאליות של סימון צבע הדף
מחרוזת שמקורית = "SheetColorHighlightExample.psd";
מחרוזת שם ייצוא = "SheetColorHighlightExampleChanged.psd";
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var layer1 = im.Layers[0];
Assert.AreEqual(SheetColorHighlightEnum.Violet, layer1.SheetColorHighlight);
var layer2 = im.Layers[1];
Assert.AreEqual(SheetColorHighlightEnum.Orange, layer2.SheetColorHighlight);
layer1.SheetColorHighlight = SheetColorHighlightEnum.Yellow;
im.Save(exportPath);
}
PSDNET-66 יכולת למזג שכבות אחת לשניה
// דוגמא למזג שתי שכבות
מחרוזת שם קובץ מקור = "FillOpacitySample.psd";
מחרוזת שם קובץ מקור 2 = "ThreeRegularLayersSemiTransparent.psd";
מחרוזת שם קובץ ייצוא = "MergedLayersFromTwoDifferentPsd.psd"
עם (var im1 = (PsdImage)(Image.Load(sourceFile1)))
{
var layer1 = im1.Layers[1];
עם (var im2 = (PsdImage)(Image.Load(sourceFile2)))
{
var layer2 = im2.Layers[0];
layer1.MergeLayerTo(layer2);
im2.Save(exportPath);
}
}
PSDNET-65 הוספת תמיכה חלקית בנכס ה-BoundBox של שכבת הטקסט
// דוגמא ל-Text BoxBounds
מחרוזת שם קובץ מקור = "LayerWithText.psd";
var correctOpticalSize = new Size(127, 45);
var correctBoundBox = new Size(172, 62);
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var textLayer = (TextLayer)im.Layers[1];
// גודל השכבה הוא גודל האיזור המוצג
var opticalSize = textLayer.Size;
Assert.AreEqual(correctOpticalSize, opticalSize);
// TextBoundBox הוא הגודל המירבי של השכבה לשכבת טקסט.
// באזור זה ה-PS תנסה להתאים את הטקסט שלך
var boundBox = textLayer.TextBoundBox;
Assert.AreEqual(correctBoundBox, boundBox);
}
PSDNET-64 הוספת תמיכה ב-IopaResource
// שינוי במאפיין של הכסף באמצעות השינוי של IopaResource
מחרוזת שם קובץ מקור = "FillOpacitySample.psd";
מחרוזת שם קובץ ייצוא = "FillOpacitySampleChanged.psd";
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var layer = im.Layers[2];
var resources = layer.Resources;
foreach (var resource in resources)
{
if (resource is IopaResource)
{
var iopaResource = (IopaResource)resource;
iopaResource.FillOpacity = 200;
}
}
im.Save(exportPath);
}
PSDNET-56 תמיכה באפקטים שכבתיים עבור פורמט PSD
עם (
PsdImage image = (PsdImage)
Aspose.PSD.Image.Load(
sourceFileName,
new Aspose.PSD.ImageLoadOptions.PsdLoadOptions()
{
LoadEffectsResource = true,
UseDiskForLoadEffectsResource = true
}))
{
image.Save(
output,
new Aspose.PSD.ImageOptions.PngOptions()
{
ColorType =
Aspose.PSD.FileFormats.Png
.PngColorType
.TruecolorWithAlpha
});
}
PSDNET-55 תמיכה ב-InterruptMonitor עבור .Net
פונקציה ציבורית לבדיקת Monitor (dir, ouptDir)
{
ImageOptionsBase saveOptions = new ImageOptions.PngOptions();
Multithreading.InterruptMonitor monitor = new Multithreading.InterruptMonitor();
SaveImageWorker worker = new SaveImageWorker(dir + "big.psb", dir + "big_out.png", saveOptions, monitor);
System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(worker.ThreadProc));
try
{
thread.Start();
// הזמן המרבי צריך להיות פחות מהזמן הנדרש להמרת תמונה מלאה (ללא הפסקה).
System.Threading.Thread.Sleep(3000);
// להפסיק את התהליך
monitor.Interrupt();
System.Console.WriteLine("נקיע את תהליך השמירה מספר #{0} ב-{1}", thread.ManagedThreadId, System.DateTime.Now);
// להמתין על הפסקת תהליך...
thread.Join();
}
finally
{
// אם הקובץ שיש למחוק אינו קיים, אז אין יוצא דופן.
System.IO.File.Delete(dir + "big_out.png");
}
}
/// <summary>
/// להתחיל את ההמרת תמונה ולהמתין להפסקה
/// </summary>
private class SaveImageWorker
{
/// <summary>
/// הנתיב לתמונת הקלט.
/// </summary>
private readonly string inputPath;
/// <summary>
/// הנתיב לתמונת הפלט.
/// </summary>
private readonly string outputPath;
/// <summary>
/// המוניטור להפסקה.
/// </summary>
private readonly Multithreading.InterruptMonitor monitor;
/// <summary>
/// האפשרויות לשמירה.
/// </summary>
private readonly ImageOptionsBase saveOptions;
/// <summary>
/// לאחר שהמרה מתבצע בין אותן פורמט לאחר.
/// </summary>
/// <param name="inputPath">נתיב לתמונת הקלט.</param>
/// <param name="outputPath">נתיב לתמונת הפלט.</param>
/// <param name="saveOptions">אפשרויות שמירה.</param>
/// <param name="monitor">מוניטור הפסקה.</param>
public SaveImageWorker(string inputPath, string outputPath, ImageOptionsBase saveOptions, Multithreading.InterruptMonitor monitor)
{
this.inputPath = inputPath;
this.outputPath = outputPath;
this.saveOptions = saveOptions;
this.monitor = monitor;
}
/// <summary>
/// להוריד את התמונה מאופן לאחר. מטופל בהפסקה.
/// </summary>
public void ThreadProc()
{
using (Image image = Image.Load(this.inputPath))
{
Multithreading.InterruptMonitor.ThreadLocalInstance = this.monitor;
try
{
image.Save(this.outputPath, this.saveOptions);
Assert.Fail("ציפייה להפסקה");
}
catch (CoreExceptions.OperationInterruptedException e)
{
System.Console.WriteLine("התהליך שמור מספר #{0} ב-{1}", System.Threading.Thread.CurrentThread.ManagedThreadId, System.DateTime.Now);
System.Console.WriteLine(e);
}
catch (System.Exception e)
{
```
System.Console.WriteLine(e);
}
finally
{
Multithreading.InterruptMonitor.ThreadLocalInstance = null;
}
}
}
}
PSDNET-50 ליצירת אפשרות למיזוג שכבות
// למזג את כל ה-PSD שלך
מחרוזת שם קובץ מקור = "ThreeRegularLayersSemiTransparent.psd";
מחרוזת שם קובץ ייצוא = "ThreeRegularLayersSemiTransparentFlattened.psd";
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
im.FlattenImage();
im.Save(exportPath);
}
// למזג שכבה אחת בשנייה
מחרוזת שם קובץ מקור = "ThreeRegularLayersSemiTransparent.psd";
מחרוזת שם קובץ ייצוא = "ThreeRegularLayersSemiTransparentFlattenedLayerByLayer.psd";
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var bottomLayer = im.Layers[0];
var middleLayer = im.Layers[1];
var topLayer = im.Layers[2];
var layer1 = im.MergeLayers(bottomLayer, middleLayer);
var layer2 = im.MergeLayers(layer1, topLayer);
// הגדרת השכבות שמוזמנות
im.Layers = new Layer[] { layer2 };
im.Save(exportPath);
}
PSDNET-49 הוספת תמיכה בעיבוד של מאפיין הכסף בשכבות
// שינוי במאפיין הכסף
מחרוזת שם קובץ מקור = "FillOpacitySample.psd";
מחרוזת שם קובץ ייצוא = "FillOpacitySampleChanged.psd";
עם (var im = (PsdImage)(Image.Load(sourceFileName)))
{
var layer = im.Layers[2];
layer.FillOpacity = 5;
im.Save(exportPath);
}
PSDNET-43 מימוש בעיבוד של שכבת התיקוני עקומות
// עריכת שכבת עקומות
מחרוזת שם קובץ מקור = "CurvesAdjustmentLayer";
מחרוזת נתיב אחרי השינוי = "CurvesAdjustmentLayerChanged";
מחרוזת נתיב ייצוא Png = "CurvesAdjustmentLayerChanged";
עבור (int j = 1; j < 2; j++)
{
עם (var im = LoadFile(sourceFileName + j.ToString() + ".psd"))
{
foreach (var layer in im.Layers)
{
if (layer is CurvesLayer)
{
var curvesLayer = (CurvesLayer)layer;
if (curvesLayer.IsDiscreteManagerUsed)
{
var manager = (CurvesDiscreteManager)curvesLayer.GetCurvesManager();
for (int i = 10; i < 50; i++)
{
manager.SetValueInPosition(0, (byte)i, (byte)(15 + (i * 2)));
}
}
else
{
var manager = (CurvesContinuousManager)curvesLayer.GetCurvesManager();
manager.AddCurvePoint(0, 50, 100);
manager.AddCurvePoint(0, 150, 130);
}
}
}
}
// שמירת PSD
im.Save(psdPathAfterChange + j.ToString() + ".psd");
// שמירת PNG
var saveOptions = new PngOptions();
saveOptions.ColorType = PngColorType.TruecolorWithAlpha;
im.Save(pngExportPath + j.ToString() + ".png", saveOptions);
}