HN Avatars in 396 bytes

Annotated avatars on all HN comments.

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
作者
libele
1日のインストール数
0
累計インストール数
62
評価
1 0 0
バージョン
1.0.6
作成日
2022/03/15
更新日
2022/09/18
大きさ
1.14KB
互換性
Firefox への互換性あり Chrome への互換性あり Opera への互換性あり Edge への互換性あり
ライセンス
不明
対象サイト

HN Avatars in 357 bytes by tomxor

The concept is to use HN usernames as the seed into a deterministic avatar generator. This generator is built from the famously simple xorshift32 PRNG, which both provides a random variable for the image generator steps, and "pseudo-hashes" the seed string to provide the initial PRNG state using a non-linear step (adding each codepoint - which is likely not very robust against collisions compared to proper hashing algorithms, but is simple and good enough).

Golfed version, prettified to comply with GreasyFork rules. Thanks to chrismorgan, hawski, toqy and z3c0 for additions!

for(u of document.querySelectorAll('.hnuser,#me'))for(u.prepend(c=document.createElement('canvas')),x=c.getContext('2d'),c.width=18,c.height=14,c.style.imageRendering='pixelated',s=u.innerText,r=1,i=28+s.length;i--;i<28?r>>>29>X*X/3+Y/2&&x.fillRect(6+2*X,2*Y,2,2)&x.fillRect(6-2*X,2*Y,2,2):r+=s.charCodeAt(i-28,x.fillStyle='#'+(r>>8&0xFFFFFF).toString(16)))r^=r<<13,r^=r>>>17,r^=r<<5,X=i&3,Y=i>>2