2012-07-23 21 views
17

我正在使用此PHP script生成identicon。它使用Don Park的原始identicon算法。防止在生成identicon时生成类似于sw象的图像

该脚本效果很好,我已经适应了我自己的应用程序生成identicons。问题是,有时会产生swastikas。尽管斯瓦达克族有着和平的起源,但人们在看到这些符号时确实会冒犯。

我想要做的是改变算法,以便从不产生swastikas。我已经做了一些挖掘,发现这个thread on Microsoft's website,一名员工表示他们已经增加了一项调整来防止产生swastikas,但仅此而已。

有没有人确定会做些什么调整以及如何防止生成swastikas?

+6

不仅仅是个人品味,实际上这可能会在一些国家(德国,法国)有法律影响,在这些国家里禁止在历史背景之外描绘符号。我不确定这是否曾经在法庭上受到质疑,但为什么要尝试? – 2012-07-23 10:48:59

+0

@KonradRudolph:同意。这就是为什么我想阻止这些符号生成:) – F21 2012-07-23 10:50:11

+2

https://addons.mozilla.org/en-us/firefox/files/browse/77910/file/chrome/identfavicon.jar/content/identfavicon.js# L118在.js中,但暗示一种方法 - 避免某些精灵组合。 – DaveP 2012-07-23 11:14:11

回答

8

Identicons对我来说(快速浏览)始终具有四重旋转对称性。斯瓦斯蒂卡斯当然可以。如何以不同的方式重复四分之一块?如果你拿出一个四分之一块,以当前形式产生一个sw字形,并反映两个对角线相反的四分之一,那么你就会得到一种空间入侵者。

基本上,没有任何反射对称可以看起来非常像一个sw字符。我想如果季内有一小sw entirely,那么你仍然有问题。

+0

是的,人类是为处理双边对称而非旋转而设计的。见https://github.com/cupcake/sigil – karmakaze 2013-09-24 21:19:58

+0

你可以把它改成5倍对称吗? – endolith 2016-04-19 02:30:44

8

Jeff Atwood's introducing thread,唐园建议:

重新卍字的意见,可以通过应用专业的OCR般的视觉分析,找出所有问题的代码,然后利用遗传算法它们紧缩成一个有效的布隆过滤器来解决。当过滤器返回真时,可以使用第二种类型的identicon(即4块被子)。

或者,您可以用unicorns替代identicons来完全避免这个问题。

+8

+1 - 独角兽的欢呼! – 2012-07-23 11:07:47

+0

我喜欢独角兽,但由于应用程序的性质,一些抽象的形状(不是swastikas!)会更合适。 Don Park的评论很有趣,但我希望对算法进行简单的调整,不需要OCR和图像分析。 – F21 2012-07-23 11:11:44

0

我最初的建议涉及视觉分析是在使用特定算法的情况下,即9块被子。

如果您想尝试另一种没有Sw字问题的算法,请尝试引入对称性,就像在inkblots中看到的流行的16块被子Identicons一样。