将图像(JPG,BMP,GIF)转换为SVG

时间:2010-06-18 19:44:18

标签: c# image-processing svg

任何人都知道一个实际工作的工具(我尝试了几个,但没有一个工作),支持彩色图像。如果有人知道如何实现这个,或任何组件(C#),我将不胜感激。

感谢您的帮助


但是,下面的程序可以使所有文件保持黑白。

Total Vectorize

8 个答案:

答案 0 :(得分:4)

这个过程被称为矢量化。它是将位图图像转换为矢量图像的过程。有许多工具,包括免费的,可以做到这一点,例如http://inkscape.org/

但这种处理的结果远非完美。

希望这会有所帮助。也许我的答案有问题,你需要将位图图像转换为矢量programmaticaly,或者你要问如何将位图图像嵌入到SVG图像中。

答案 1 :(得分:3)

将位图图形转换为矢量图形(例如,PNG到SVG)是一项明确的重要任务,没有直接的解决方案。反之亦然 - 矢量到位图图形 - 当然是一个简单的渲染过程,如果你想要两种格式,通常就会这样做。

从本质上讲,这种转换需要复杂且容易出错的算法来分析图像中的模式。更复杂的图像将无法分解为矢量图形。技术解释是基于以下事实:位图表示的information entropy保证高于矢量表示的表示,这意味着在逆转明确定义的矢量图形渲染过程中始终存在不确定性。

广泛适用于您的任务的最佳程序可能是Vector Magic(共享软件)。如果那不能为你完成这项任务,那么任何事情都不会发生,但当然你可能需要进行大量的调整才能取得好成绩。

答案 2 :(得分:1)

SVG是可扩展的矢量图形,有效地表示绘制线条。该格式不利于显示图像,该图像基本上是像素矩阵。线条可以很容易地转换为像素,但将像素显示为线条(或点)的效率非常低,而且实际上不是可缩放的。试图在像素化图像中发现行的替代方案充满了危险。

如果你想要的只是以SVG格式恢复不可伸缩的图像,你可能会找到一个工具来做到这一点。但由于缩放是SVG ,我想确定你理解为什么你可能有困难。

答案 3 :(得分:1)

Open Clip Art

此链接包括工具,基于Web的选项和其他诱人的位。

享受

答案 4 :(得分:1)

最好的开源矢量化器之一是potrace。它来自standalone tool for the command line。或者如果您更喜欢GUI,它将作为Inkscape的一部分包含在内。两者都可用于多个操作系统。

答案 5 :(得分:0)

到目前为止,{p> Vector Magic是我所知道的最好的工具。但是,您只能对有限数量的图像应用矢量化,之后您必须订阅或购买桌面版的许可证。

答案 6 :(得分:0)

我有一个专有的矢量绘图程序,可以将位图,jpeg,GIF和Pngs保存为SVG格式。这是特定位图的输出svg文本文件。

<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
    <svg width="1024px" height="768px" version="1.1"
      xmlns="http://www.w3.org/2000/svg"
      xmlns:xlink= "http://www.w3.org/1999/xlink">
      <image xlink:href="C:\RedWind\Bitmaps\PrayerChild.bmp" 
                         x="20" y="20" width="384" height="428"/>
    </svg>

SVG文件是纯文本文件。您可以使用Windows记事本,MS Word或任何文本文件创建者创建它们。 您可以复制此文本,将其放在记事本中,将其保存到文件扩展名为“.SVG”的文件中,然后复制文件名即“c:\ bitmaps \ MyBitmap.SVG”并将其粘贴到浏览器的导航区域中,它将在浏览器中生成SVG文件。请务必替换位图的位置以代替“C:\ RedWind \ Bitmaps \ PrayerChild.bmp”。还可以在x,y,width,height处替换位图的位置和宽度/高度数据。我希望这有帮助。

答案 7 :(得分:0)

我发现PicSvg website在简单的位图图像上工作得很好(对于免费工具)。

[(非)免责声明:我没有以任何方式与他们联系,只是在我需要一个快速工具来实现我正在研究的项目创意时才发现它。]