C++ 是否可以为“创建程序”;“完美”;将(JGP、PNG)转换为SVG格式?

C++ 是否可以为“创建程序”;“完美”;将(JGP、PNG)转换为SVG格式?,c++,svg,bitmap,C++,Svg,Bitmap,我想尝试将jpg/PNG转换为SVG,至少看起来与原始图像几乎相同。在将jpg/png转换为svg的能力方面,我发现很少,但我发现了许多svg到jpg/png的转换器。我所发现的使输出看起来像卡通。下面左边是一个jpg,右边是从该jpg“转换”的svg文件 这是我们的一个例子 基于缺乏信息,我认为这是一项艰巨的任务 但从编程的角度来看,为什么要“完美地”将位图转换为向量如此困难 提出了哪些挑战 我知道我需要将位图转换为矢量,但是有什么特别的方法可以克服这种失真的输出吗 如果我尝试这样的任务,哪

我想尝试将jpg/PNG转换为SVG,至少看起来与原始图像几乎相同。在将jpg/png转换为svg的能力方面,我发现很少,但我发现了许多svg到jpg/png的转换器。我所发现的使输出看起来像卡通。下面左边是一个jpg,右边是从该jpg“转换”的svg文件

这是我们的一个例子

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

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

提出了哪些挑战

我知道我需要将位图转换为矢量,但是有什么特别的方法可以克服这种失真的输出吗

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

谢谢

SVG关注的是形状,而不是像素。
为了重现照片中的草,以及它无数的绿色细微差别,你基本上需要找到内部颜色相同的形状边界


这就是问题所在:草地上没有干净、均匀的颜色形状,如正方形等。要么你接受较低的质量(使大部分变成同样的绿色,而不是重新创建原始草),要么你需要许多1x1大小的形状:它们又是像素。

是的,这是可能的。通常,矢量图形格式(包括用于绘制线、圆等的原语)也可以包括表示为像素值序列的图像

请注意,当您编写“完美转换”时,您的意思是逐像素。那么,问题是,svg格式是否包含一个图像像素和一个作为原语的像素?SVG是一种非常好而且非常完整的格式

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


这是一个使用非常简单的C++库。

< P>让我补充说,通过将每个像素变成SVG原语,您已经创建了可想象的位图图像的最低效表示。SVG文件将是巨大的