AI، Adobe Illustrator Artwork، نمایشدهنده نقاشیهای برداری تکصفحهای در یکی از فرمتهای EPS یا PDF میباشد.
ساختار یک فایل AI بستگی به نسخهای که دارد دارد.
Aspose.PSD در حال حاضر از نسخههای AI زیر پشتیبانی میکند (حمایت کامل از AI در مسیر توسعه محصول است):
- نسخه AI 3
- نسخه AI 8
میتوانید یک فایل 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
نمونه | توضیحات |
---|---|
![]() |
صادر کردن فایل AI شامل توانایی رندر کردن اشکال Postscript با پر کردن متفاوت و خط فرمت با هر وزن دلخواه است. |
![]() |
رندر کردن مسیرهای پیچیده از فایل 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"); | |
} |