是否可以创建一个程序,用于(JGP,PNG)到SVG格式的“完美”转换?

时间:2016-07-19 08:01:56

标签: c++ svg bitmap

我想尝试将jpg / pngs转换为与原始图像至少几乎相同的svgs。我发现将jpg / png转换为svg的能力很少,但我找到了很多svg到jpg / png转换器。我发现的结果使得输出看起来很卡通。左下方是jpg,右边是来自该jpg的“转换”svg文件。

这是http://vectormagic.com/的示例 enter image description here

基于这种缺乏信息,我认为这是一项艰巨的任务。

但是从编程的角度来看,为什么“完美地”将位图转换为向量是如此困难?

提出了哪些挑战?

我理解我需要将位图转换为矢量,但是有什么特别的东西可以用来克服这种扭曲的输出吗?

如果我尝试这样的任务,哪种编程语言最好?

谢谢!

3 个答案:

答案 0 :(得分:2)

SVG与形状有关,而不是像素 重建例如。你的照片中的草,无数细微的绿色,你基本上需要找到内部相同颜色的形状边框。

这就是问题所在:草地上没有像方形等一样干净的均匀颜色的形状。您要么接受较低的质量(使大部件成为同一种绿色,而不是重新创建原始草),要么需要多种形状的1x1尺寸:再次是像素。

答案 1 :(得分:0)

是的,这是可能的。通常,包括绘制线条,圆形等的图元的矢量图形格式也可以包括表示为像素值序列的图像。

请注意,当您编写“完美转换”时,您的意思是逐个像素。然后,问题是¿svg格式是否包含图像像素像素作为图元? SVG是一种非常完整的格式。

如果您想要一个非常简单的示例,其中包括从jpg到svg的转换,请查看此库:

https://sourceforge.net/projects/libboard/

这是一个非常简单易用的c ++库。

答案 2 :(得分:0)

让我补充一点,通过将每个像素变成SVG原语,您创建了可以想象的位图图像效率最低的表示。 SVG文件将是巨大的!