要点:
我开始使用Delphi 7构建一个用于创建/编辑HTML图像映射或图片中的“热点”的工具。应用程序的概念很清楚,如下所述。我以前做过类似的项目,我相信我可以用自己采取的任何方法做到这一点。我需要帮助的是找出如何在内存中存储图像映射的最佳方法。
图像地图可能如下所示:
<MAP NAME="someImageMap">
<AREA SHAPE="RECT" COORDS="10,28,54,51" HREF="some_page.htm">
<AREA SHAPE="RECT" COORDS="54,28,111,50" HREF="some_other_page.htm">
<AREA SHAPE="RECT" COORDS="111,28,199,49" HREF="another_example.htm">
</MAP>
<IMG border=0 src="../images/SomeImage.png" width=571 height =451
isMap useMap=#someImageMap />
AREA
是图像中给定形状和坐标的区域,用于放置不可见的超链接。它们也被称为Hotspots
。
背景
我有一个HTML格式的巨大帮助文件,曾经在 HelpScribble 软件中,但现在我们正在使用 WinCHM 。 HelpScribble有一个名为 SHGEditor 的工具,它为我做了所有这些映射。但WinCHM没有图像映射的概念,它们遍布整个代码。因此,我不打算为此找到一个工具(当然这是解决这个问题的简单方法),而是制作我自己的工具。
图片:
问题:
混淆开始于决定暂时将Hotspot
区域的主要数据存储在内存中的位置......
这是我要问的主要问题。
我估计每个人都有起伏。但是当我考虑HTML编辑器时,整个事情就被抛弃了。当在3个编辑选项卡(图像,HTML或热点列表)中的任何一个中完成修改时,它必须以某种方式将这些更改同步到其他两个编辑器。因此,如果在图像上绘制一个新的热点,我当然可以把它放到HTML没问题。但是使用纯HTML代码作为主要来源呢?无论如何,我将构建/解析它,但我担心它的表现。但话说回来,我可以建立一个很好的后端课程来保持一切。哪个主要考虑?
结论:
所有这一切归结为我应该将主要数据保存在HTML源代码,列表视图项目,自定义列表类(THotspots)还是在哪里?
非常感谢任何提示,技巧或建议。
PS:
我确实经常问很长的问题,对不起!
答案 0 :(得分:1)
由于种种原因,我决定使用原始HTML作为数据的基础。我最初担心使用这种方法的性能,但是因为我发现了Delphi的this HTML parser component,性能不是问题。这个解析器可以在1秒内完成50,000个标签。
使用核心HTML的核心优势是我可以以原始格式维护HTML数据。任何其他方法很可能导致每次我需要时都必须重新生成HTML,这将以我的应用程序放入的任何格式出现。但由于我现在有了这个解析器,所以很容易简单地改变标记属性。一只眼睛。