目前我们有一个要求,我们有一个描绘商场蓝图的图像(红色指定预订区域,白色指定可用区域)并且图像以光栅 (JPEG) 格式提供。
我们想将一些图标拖放到图像的可用区域(白色)。还应该为上面的图像提供放大和缩小功能
由于 JPEG 具有有损缩放,因此在一定限制后缩放可能会导致图像出现锯齿状。一种建议的解决方案是将图像转换为 SVG(可缩放矢量图形)。
使用 SVG 的扩展形式,它简单地告诉我们图像是:
s=> 可缩放(即您可以缩放到任何级别而不会影响质量)
v=>矢量化(即坐标可用)
fill=red
因此,通过简单地查看图像的 XML 格式,我们可以预测是否允许将对象放置fill=white
在图像中红色和白色是两种颜色的位置。这可能不是合适的解决方案,但我只是这样猜测
现在我看到这种方法的问题是:
- 使用一些开源工具 (InkSpace) 转换图像 - 如果我们使用 ink-space 跟踪它,它使用内部的 portace 来跟踪图像,它只能处理黑白颜色。
注意-:大多数工具都带有一些许可证。
inkspace 的问题在于它将图像嵌入到 SVG 地图中并且不创建坐标。如果您使用墨水空间跟踪它,它只会创建图像的轮廓。
- 使用一些在线实用程序进行转换 - 在我们的案例中不推荐,但这样做会导致 SVG 图像尺寸过大。对于 700 KB 的文件,生成的 SVG 约为 39 MB,在浏览器上打开时会导致浏览器崩溃。
大多数情况下,当图像转换为 SVG 时,它会变得太大而令人担忧。有可用的实用程序,如 Gzip 来压缩文件,但这是一种双向途径 - 首先转换,然后压缩。
使用
delinate
(其中使用了 portace 和 autotrace 引擎) - 生成的图像质量不好。使用 Java 代码 - 质量再次受到影响。Java 图形尚未完全开发以处理转换(尺寸再次太大)
将图像转换为 PDF,然后转换为 SVG - 这也将图像嵌入到 SVG 文件中,这是无用的,因为没有可用的坐标
有没有人对此有任何想法,如何处理这种情况?,我们可以处理光栅(jpeg,png...等)图像本身的拖放吗?
谢谢迪尚阿南德