生成身份图标时如何防止出现类似卍字的图案

19

我正在使用这个PHP脚本生成标识图像。它使用Don Park的原始标识图像算法。

脚本工作良好,我已经将其适应我的应用程序来生成标识图像。问题是有时会生成卐符号。虽然卐符号有和平的起源,但人们看到这些符号会感到冒犯。

我想要做的是改变算法,使卐符号永远不会被生成。我做了一些调查,并在Microsoft的网站上找到了这个线程,其中一位员工说他们已经添加了一个修改来防止生成卐符号,但没有更多的信息。

有没有人确定了这个修改是什么以及如何防止生成卐符号?


6
在某些国家(如德国、法国),这不仅仅是个人口味问题,实际上可能涉及到法律问题,因为在历史背景之外描绘该符号是被禁止的。我不确定是否曾有过此类案件的挑战,但为什么要尝试呢? - Konrad Rudolph
@KonradRudolph:同意。这就是为什么我希望防止生成这些符号的原因:) - F21
2
https://addons.mozilla.org/en-us/firefox/files/browse/77910/file/chrome/identfavicon.jar/content/identfavicon.js#L118 是一个 .js 文件,但是它暗示了一种方法——避免某些精灵的组合。 - DaveP
3个回答

9

Jeff Atwood的介绍帖子中,Don Park提出:

关于纳粹徽章的评论,可以通过应用类似OCR的视觉分析来识别所有冒犯代码,然后使用遗传算法将它们压缩成有效的布隆过滤器。当过滤器返回true时,可以使用第二种类型的identicon(即4块拼布)。

或者,您可以通过将identicon替换为独角兽来完全避免这个问题。


我喜欢独角兽,但由于应用程序的性质,一些抽象形状(不是卐字!)会更加合适。 Don Park的评论很有趣,但我希望能有一个简单的算法调整,不需要OCR和图像分析。 - F21

9
Identicons(身份图标)在我看来(一瞥之间)似乎总是具有四重旋转对称性。卐字肯定有。那么只需用不同的方式重复四分之一的块,会怎样呢?如果您取一个会在当前模式中产生卐字的四分之一块,并反射两个对角线相对的四分之一,则会得到一种类似于太空入侵者的形状。
基本上,没有反射对称性的东西不能看起来像卐字。我想,如果在四分之一内完全包含一个小卐字,那么您仍然会遇到问题。

是的,人类的设计更适合处理双侧对称而不是旋转对称。请参见 https://github.com/cupcake/sigil。 - karmakaze
你能把它改成五重对称吗? - endolith

0

我的原始建议涉及视觉分析,是针对特定算法的上下文,即9块拼布。

如果您想尝试另一个没有纳粹符号问题的算法,请尝试在流行的16块拼布Identicons中引入墨水渍中看到的对称性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接