HN Avatars in 396 bytes

Annotated avatars on all HN comments.

질문, 리뷰하거나, 이 스크립트를 신고하세요.
개발자
libele
일일 설치수
0
총 설치수
62
평점
1 0 0
버전
1.0.6
생성
2022-03-15
갱신
2022-09-18
호환성
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