저는 현재 Floyd-Steinberg-Dithering 알고리즘을 Java로 구현하려고합니다. 몇 번의 시도가 실패한 후에 나는 Wikipedia에 나열된 의사 코드를 읽은 후 질문을 보게되었습니다. 내가 달성하기 위해 노력하고있어Floyd-Steinberg-Dithering은 어떻게 작동합니까?
for each y from top to bottom
for each x from left to right
oldpixel := pixel[x][y]
newpixel := find_closest_palette_color(oldpixel)
pixel[x][y] := newpixel
quant_error := oldpixel - newpixel
pixel[x+1][y ] := pixel[x+1][y ] + 7/16 * quant_error
pixel[x-1][y+1] := pixel[x-1][y+1] + 3/16 * quant_error
pixel[x ][y+1] := pixel[x ][y+1] + 5/16 * quant_error
pixel[x+1][y+1] := pixel[x+1][y+1] + 1/16 * quant_error
는 16 색 팔레트에 이미지를 함부로 대하지 입니다. 그러나 픽셀에 오류를 추가 한 후에 팔레트에도 존재하지 않는 완전히 새로운 색상을 만들지 않습니까?
하지만이 이미지를 만들려면 색상 팔레트에 전체 이미지를 다시 넣어야합니까?
미리 감사드립니다.
고마워요! 이것은 많은 의미를 가지며 완벽하게 해결하는 데 도움이되었습니다. –