AI، Adobe Illustrator Artwork، نمایش‌دهنده نقاشی‌های برداری تک‌صفحه‌ای در یکی از فرمت‌های EPS یا PDF می‌باشد.

ساختار یک فایل AI بستگی به نسخه‌ای که دارد دارد.

Aspose.PSD در حال حاضر از نسخه‌های AI زیر پشتیبانی می‌کند (حمایت کامل از AI در مسیر توسعه محصول است):

می‌توانید یک فایل AI از نسخه پشتیبانی شده را به هر فرمتی که توسط Aspose.PSD پشتیبانی می‌شود، صادر کنید. به عنوان مثال، می‌توانید فایل AI را به صورت برنامه‌نویسی‌شده به فرمت‌های Psd, Png, Jpeg, Gif, Bmp, Tiff صادر کنید.

کد نمونه زیر نشان می‌دهد که چگونه می‌توانید فایل AI را به PSD با یک 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

رندر کردن مسیرهای پیچیده از فایل AI

با استفاده از API C# بدون نیاز به Adobe Illustrator

قابلیت‌های دیگر پردازش AI از طریق API فرمت فایل


Aspose.PSD امکان مدیریت لایه‌ها و تصاویر رستری از فایل‌های AI را ارائه می‌دهد. تمام این قابلیت‌ها فقط با نسخه‌های پشتیبانی شده فایل Adobe Illustrator کار می‌کند.

کد نمونه نشان می‌دهد چگونه می‌توانید تصاویر رستری را از بخش فایل 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");
}