答案 0 :(得分:2)
您无法将基于光栅的图像转换为基于矢量的图像,因为基础数据完全不同,您可以阅读更多关于维基百科上的差异的信息,例如:
http://en.wikipedia.org/wiki/Vector_graphics
http://en.wikipedia.org/wiki/Raster_graphics
不可能在两者之间“转换”,但是有不同的算法来近似转换。用于矢量绘图的许多程序(例如adobe illustrator或incscape)具有用于自动跟踪的选项,即将矢量拟合到光栅图像以获得原始的接近结果。
在您的情况下,您将需要提出自己的跟踪算法,或者使用库加载预先制作的svg文件。
答案 1 :(得分:1)
您可以使用栅格到矢量(矢量化)库,例如 potrace 或 {{ 3}} ,并从中创建一个Android autotrace 。
不幸的是,我不知道任何这样的矢量化库是用Java制作的,这会使Android的端口变得更简单。
你必须检查我上面提到的库是否可以轻松适应到本机android代码(例如,他们必须交叉编译到ARM体系结构;你也可能有依赖性问题)
答案 2 :(得分:0)
见Potrace: http://potrace.sourceforge.net/
Potrace(TM)是一种用于跟踪位图的工具,这意味着将位图转换为平滑,可伸缩的图像。输入是位图(PBM,PGM,PPM或BMP格式),默认输出是封装的PostScript文件(EPS)。
答案 3 :(得分:0)
declare function local:parse-xpath($xpath as xs:string) as xs:string
{
fn:normalize-space(
fn:replace(
fn:replace(
fn:replace(
fn:replace(
fn:replace(
fn:replace(
fn:replace(
fn:replace(
fn:replace(
$xpath,
'\[not\(\*\)\]',
' with no child elements '
),
'not\(\*\)',
' there are no child elements '
),
'\*',
' any element '
),
'\.',
' this element '
),
'@',
' attribute '
),
'\]\[',
' and '
),
'\[',
' where '
),
'\]',
' '
),
'//',
' any depth where '
)
)
};
是此工具。您可以批量处理它们,但首先必须将图像转换为单色:
potrace
您可以使用简单的网络服务转换上传的任何图片。
还有一个Android项目试图在android上运行potrace,你可以看到它是如何做到的,甚至可以使用它: https://github.com/jiangpeng79/antrace
在Ubuntu上安装:
ls ./p*.jpg | xargs -L1 -I {} convert -monochrome {} {}.bmp
ls -1 ./*.bmp | xargs -L1 -I {} potrace {} -r 300 -b svg -o {}.svg
光栅到矢量(矢量化)仅适用于单色图像。如果要转换非单色图像,sudo apt install potrace
有一个支持多种颜色的potrace示踪工具,它首先将图像转换为颜色图层然后跟踪它们并合并结果。不幸的是,它还没有该功能的命令行,但你可以看到它是如何工作的:
要使用跟踪器,加载或导入图像,请选择它,然后选择 路径> 跟踪位图项,或 Shift + Alt + B.
见