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):
- AI phiên bản 3
- AI phiên bản 8
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ả |
---|---|
![]() |
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. |
![]() |
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"); | |
} |