פורמט AI (Adobe Illustrator)

AI, Adobe Illustrator Artwork, מייצג שרטוטים בעלי עמוד יחיד בפורמטים EPS או PDF המבוססים על וקטור.

מבנה הקובץ AI תלוי בגרסתו.

Aspose.PSD תומך בגרסאות AI הבאות כרגע (תמיכה מלאה בAI נמצאת בתוכנית המלצות המוצר):

  • גרסא 3 של AI
  • גרסא 8 של AI

ניתן לייצא קובץ AI בגרסה נתמכת כלשהי בפורמט שהוא שנתמך על ידי Aspose.PSD. לדוגמה, ניתן לייצא קובץ AI לפורמטים כמו Psd, Png, Jpeg, Gif, Bmp, Tiff

בקוד המדגמה הבא מוצג איך לייצא את קובץ הAI לPsd באמצעות File Format Manipulation API

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
{
@"34992OStroke",
@"rect2_color",
};
for (int i = 0; i < sourcesFiles.Length; i++)
{
string name = sourcesFiles[i];
string sourceFileName = dataDir + name + ".ai";
string outFileName = dataDir + name + ".psd";
using (AiImage image = (AiImage)Image.Load(sourceFileName))
{
ImageOptionsBase options = new PsdOptions();
image.Save(outFileName, options);
}
}

דוגמאות ליכולות הייצוא הנוכחיות של קבצי AI


דוגמה תיאור
todo:image_alt_text

כולל אפשרות לייצא את קובץ הAI ולהציג שרטוטים בסיסיים המבוססים על Postscript

עם מילויים ונקודת שבירה שונים

ומשקל סגורות מותאם אישית.

todo:image_alt_text

שימוש ב-API של C# לתצוגה של נתיבים מורכבים מקובץ AI

ללא צורך ב-Adobe Illustrator

יכולות נוספות לטיפול בקבצי AI דרך אמצעי ה-File Format API


Aspose.PSD מספק אפשרות לטיפול בשכבות ובתמונות Raster מקובצי AI. כל היכולות הללו עובדות רק עם גרסאות קבצי Adobe Illustrator הנתמכות.

הקוד המדגמה מציג איך ניתן לטפל בתמונות Raster מתוך קטע מסוים בקובץ AI

// For complete examples and data files, please go to https://github.com/aspose-psd/Aspose.PSD-for-.NET
void AssertIsTrue(bool condition, string message)
{
if (!condition)
{
throw new FormatException(message);
}
}
string sourceFile = dataDir + "sample.ai";
using (AiImage image = (AiImage)Image.Load(sourceFile))
{
AiLayerSection layer = image.Layers[0];
AssertIsTrue(layer.RasterImages != null, "RasterImages property should be not null");
AssertIsTrue(layer.RasterImages.Length == 1, "RasterImages property should contain exactly one item");
AiRasterImageSection rasterImage = layer.RasterImages[0];
AssertIsTrue(rasterImage.Pixels != null, "rasterImage.Pixels property should be not null");
AssertIsTrue(rasterImage.Pixels.Length == 100, "rasterImage.Pixels property should contain exactly 100 items");
AssertIsTrue((uint)rasterImage.Pixels[99] == 0xFFB21616, "rasterImage.Pixels[99] should be 0xFFB21616");
AssertIsTrue((uint)rasterImage.Pixels[19] == 0xFF00FF00, "rasterImage.Pixels[19] should be 0xFF00FF00");
AssertIsTrue((uint)rasterImage.Pixels[10] == 0xFF01FD00, "rasterImage.Pixels[10] should be 0xFF01FD00");
AssertIsTrue((uint)rasterImage.Pixels[0] == 0xFF0000FF, "rasterImage.Pixels[0] should be 0xFF0000FF");
AssertIsTrue(Math.Abs(0.999875 - rasterImage.Width) < DefaultTolerance, "rasterImage.Width should be 0.99987");
AssertIsTrue(Math.Abs(0.999875 - rasterImage.Height) < DefaultTolerance, "rasterImage.Height should be 0.99987");
AssertIsTrue(Math.Abs(387 - rasterImage.OffsetX) < DefaultTolerance, "rasterImage.OffsetX should be 387");
AssertIsTrue(Math.Abs(379 - rasterImage.OffsetY) < DefaultTolerance, "rasterImage.OffsetY should be 379");
AssertIsTrue(Math.Abs(0 - rasterImage.Angle) < DefaultTolerance, "rasterImage.Angle should be 0");
AssertIsTrue(Math.Abs(0 - rasterImage.LeftBottomShift) < DefaultTolerance, "rasterImage.LeftBottomShift should be 0");
AssertIsTrue(Math.Abs(0 - rasterImage.ImageRectangle.X) < DefaultTolerance, "rasterImage.ImageRectangle.X should be 0");
AssertIsTrue(Math.Abs(0 - rasterImage.ImageRectangle.Y) < DefaultTolerance, "rasterImage.ImageRectangle.Y should be 0");
AssertIsTrue(Math.Abs(10 - rasterImage.ImageRectangle.Width) < DefaultTolerance, "rasterImage.ImageRectangle.Width should be 10");
AssertIsTrue(Math.Abs(10 - rasterImage.ImageRectangle.Height) < DefaultTolerance, "rasterImage.ImageRectangle.Height should be 10");
}