C#如何导入Adobe Illustrator (.AI)文件并渲染为位图?

3
有人知道如何加载.AI文件(Adobe Illustrator),然后将向量栅格化/渲染成位图,以便我可以从中生成JPG或PNG等格式的图片吗?
我想要生成缩略图,并在可能的情况下使用透明背景渲染大版本的PNG。
当然,如果您知道.AI的规格,则“可能”可以实现,但是有没有人能够分享一些代码或组件的知识或代码供我参考?或者只是提供一些相关链接?
请使用C# .NET编程语言。
最感兴趣的是代码,因为我对读取矢量点和绘制样条线一无所知。

很抱歉,但这是一个非常复杂的任务。你基本上需要实现一个PostScript渲染引擎! - Gabe
我知道,我并不想构建一个新的Illustrator或PDF渲染器,我只是想快速获取文件概述并在服务器上使用它们的方法。 - BerggreenDK
4个回答

5

如果Gregory的说法是正确的,即ai文件与pdf兼容,并且您可以使用GPL代码,那么在github上有一个名为 GhostscriptSharp的项目,它是Ghostscript引擎的.NET接口,可以呈现PDF。


在得出任何结论之前,我最好先检查一下。到目前为止谢谢。 - BerggreenDK
看起来很有前途!GhostscriptDevices: { ... pngalpha ... } - BerggreenDK

2

通过使用更新的AI版本,您应该能够将PDF转换为图像。有很多便宜的库可以做到这一点,因此我会选择购买而不是构建。如果您需要转换旧的AI文件,则无法保证。我不确定它们的格式是什么。


有趣的方法。.AI-> PDF-> 位图...问题可能是具有透明度的输出。 - BerggreenDK

1
private void btnGetAIThumb_Click(object sender, EventArgs e)
{
    Illustrator.Application app = new Illustrator.Application();
    Illustrator.Document doc = app.Open(@"F:/AI_Prog/2009Calendar.ai", Illustrator.AiDocumentColorSpace.aiDocumentRGBColor, null);
    doc.Export(@"F:/AI_Prog/2009Calendar.png",Illustrator.AiExportType.aiPNG24, null);  
    doc.Close(Illustrator.AiSaveOptions.aiDoNotSaveChanges); 
    doc = null; //
}

Illustrator.AiExportType.aiPNG24 可以设置为 JPEG、GIF、Flash、SVG 和 Photoshop 格式。

5
需要在计算机上安装Illustrator吗?这被认为是在Web服务上运行的服务,因此我不认为他们会在上面安装Illustrator客户端。 - BerggreenDK

0

我已经使用Pdf2Png进行了测试,并且在处理PDF和.ai文件时都能正常工作。
但是我不知道它在处理透明文件时会怎样。

string pdf_filename = @"C:\test.ai";
//string pdf_filename = @"C:\test.pdf";
string png_filename = "converted.png";
List<string> errors = cs_pdf_to_image.Pdf2Image.Convert(pdf_filename, png_filename);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接