تنسيق AI (أدوبي إلوستريتور)
ملف AI، أدوبي إلوستريتور للرسومات، يمثل رسومات قائمة على الصفحة بتنسيق متجهي في تنسيقات EPS أو PDF.
هيكل ملف AI يعتمد على نسخته.
Aspose.PSD يدعم الإصدارات التالية من ملف AI في الوقت الحالي (دعم كامل لملف AI مدرج في خارطة المنتج):
- إصدار AI 3
- إصدار AI 8
يمكنك تصدير ملف AI بالإصدار المدعوم إلى أي تنسيق منتج بواسطة Aspose.PSD. على سبيل المثال، يمكنك تصدير ملف AI برمجيًا إلى تنسيقات الملفات Psd، Png، Jpeg، Gif، Bmp، Tiff.
الكود المرفق أدناه يوضح كيفية تصدير ملف AI إلى Psd باستخدام واجهة برمجة التلاعب بتنسيق الملفات
// 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
المثال | الوصف |
---|---|
![]() |
يشمل تصدير ملف AI القدرة على تقديم بدائل Postscript مع تعبئة وضرب مختلفين بأي سمك مخصص. |
![]() |
تقديم مسارات معقدة من ملف AI باستخدام واجهة C# بدون أدوبي إلوستريتور |
ميزات تعديلية إضافية لملفات AI من خلال واجهة API لتنسيق الملفات
يوفر Aspose.PSD القدرة على تعديل الطبقات والصور النقطية من ملفات AI. تعمل جميع هذه الميزات فقط مع إصدارات ملفات أدوبي إلوستريتور المدعومة.
الكود المرفق يوضح كيف يمكنك التلاعب بالصور النقطية من قسم ملف 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"); | |
} |