时间:2010-07-23 17:50:51

标签: imagemap border

3 个答案:

答案 0 :(得分:1)

这个问题的一个近乎完美的解决方案是使用SVG图像和svg代码的这个转换器来成像图像区域标记:http://www.electricfairground.com/polygonator/。结果是一个合适的图像映射,虽然svg图像可能需要调整大小,并且这些国家或省份似乎都被抵消并偶尔混乱。因此,这需要在wysiwig编辑器中打开使用SVG图像生成的页面或导出SVG文件的PNG副本,该编辑器允许您移动imagemap元素。

我正在试图弄清楚偏移的模式是什么,如果我这样做,我会在这里发布:http://wherehaveibeen.info/images/polye.html。 “Polygonator”的作者让我了解他的服务并使用他的文章中的svg地图图像:http://www.electricfairground.com/2009/08/08/image-map-rollover-effects-using-jquerys-maphilight-plugin/。他主张在那里,通过Inkscape将png图像追踪到svg图像中。但由于维基百科已经有SVG格式的地图,为什么不直接使用代码呢?事实证明,svg文件基本上已经分离了多边形并指定了边界区域,至少在维基百科的灰色地图http://en.wikipedia.org/wiki/Wikipedia:Blank_maps中,他们只需要使用Polygonator进行一些清理。

我发现如果我在Notepad ++中打开了SVG代码,我可以复制并粘贴SVG文件的全部内容,并且多边形器将删除不需要的代码。之后需要稍微清理一下imagemap区域标签,但不是很多。最大的问题是上面提到的生成的区域标签区域,并且场景混淆了生成的代码中图像映射区域的重叠位置。

答案 1 :(得分:1)

这里真正的答案似乎是SV​​G文件几乎已经是图像地图,可以进行温和处理以将其转换为图像地图,而维基百科肯定有很多SVG地图。

至少有三个项目尝试这样做,目前只取得了一些成功。我现在更感兴趣的是制作SVG文件处理在线图像映射器服务,因此可以在该项目上工作,而不仅仅是地图着色一个:

答案 2 :(得分:0)

我看到我可以使用GD PHP的imagecolorat并循环遍历所有像素以找到那些黑色的像素。这有效:

<?php
$im = ImageCreateFromPNG("india.png");
$width = imagesx($im);
$height = imagesy($im);
for ($cy=0;$cy<$height;$cy++) {
  echo '<p>';
  for ($cx=0;$cx<$width;$cx++) {
    $rgb = ImageColorAt($im, $cx, $cy);
    $col = imagecolorsforindex($im, $rgb); 
if ($col["red"] == 0 && $col["green"] == 0 && $col["blue"] ==0){
    echo $cx.", ".$cy." ";
  } else {echo "";}
}
}
?>

任何人都可以建议如何在巨大的多边形复合体中找到多边形,这些复合体是通过运行上述代码得到的,例如印度的黑白2色地图,其中所有边界都是黑色的,并且是州和印度洋的内部是白色的吗?

以下是印度的图片:http://wherehaveibeen.info/images/india.png以及现在需要分割成单独多边形的图像坐标的混乱:http://wherehaveibeen.info/images/black.php