AI, Adobe Illustrator Artwork, đại diện cho các bản vẽ dựa trên vector trang đơn trong định dạng EPS hoặc PDF.

Cấu trúc của một tập tin AI phụ thuộc vào phiên bản của nó.

Aspose.PSD hiện hỗ trợ các phiên bản AI sau (Hỗ trợ đầy đủ của AI đang có trong kế hoạch sản phẩm):

Bạn có thể xuất tập tin AI của phiên bản được hỗ trợ sang bất kỳ định dạng nào được hỗ trợ bởi Aspose.PSD. Ví dụ, bạn có thể xuất tập tin AI theo cách lập trình sang định dạng Psd, Png, Jpeg, Gif, Bmp, Tiff .

Mã mẫu dưới đây mô tả cách xuất tập tin AI sang PSD với 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);
}
}

Ví dụ về khả năng xuất hiện hiện tại cho các tập tin AI


Ví dụ Miêu tả
todo:image_alt_text

Xuất tập tin AI bao gồm khả năng

phác họa các hình nguyên tác Postscript

với fill và stroke khác nhau

với bất kỳ độ dày tùy chỉnh.

todo:image_alt_text

Phác họa các đường dẫn phức tạp từ tập tin AI

sử dụng C# API mà không cần Adobe Illustrator

Các tính năng thêm của việc xử lý ảnh AI thông qua API định dạng tập tin


Aspose.PSD cung cấp khả năng xử lý Các Lớp và Hình ảnh Raster từ các tập tin AI. Tất cả các tính năng này chỉ hoạt động với các phiên bản Tập tin Adobe Illustrator được hỗ trợ.

Mã mẫu dưới đây mô tả cách bạn có thể xử lý Hình ảnh Raster từ Phần Tập tin 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");
}