+
    #j              '          R t ^ RIHtHtHt  ^RIHtHt RRRRRRR	R
^R^R^/RRRRRRR	R
^R^R^ /RRRRRRR	R
^R^RR/RRRRRRR	R
^R^RR/RRRRRRR	R
^R^RR/RRRRRRR	R
^R^RR/RRRRRRR	R
^R^RR/RRRRRRR	R
^R^
RR/RRRRRRR	R
^R^
RR/R RRRRRR	R
^R^RR!/R"RRRR#RR	R
^R^RR$/R%RRRR#RR	R
^R^RR&/R'RRRRRR	R
^R^RR(/R)RR	RRRR*R
^R^RR+//t	R0R, lt
R- t]R.8X  d
   ]! 4        R/# R/#   ] d    ^ RIHtHt  Li ; i)1u  Pixel art converter — Floyd-Steinberg dithering with preset or named palette.

Named hardware palettes (NES, GameBoy, PICO-8, C64, etc.) ported from
pixel-art-studio (MIT) — see ATTRIBUTION.md.

Usage (import):
    from pixel_art import pixel_art
    pixel_art("in.png", "out.png", preset="arcade")
    pixel_art("in.png", "out.png", preset="nes")
    pixel_art("in.png", "out.png", palette="PICO_8", block=6)

Usage (CLI):
    python pixel_art.py in.png out.png --preset nes
)ImageImageEnhanceImageOps)PALETTESbuild_palette_imagearcadecontrastg?colorg      ?	sharpnessg333333?posterize_bitsblockpalettesnesg?gffffff?nesNESgameboyg      ?GAMEBOY_ORIGINALgameboy_pocketGAMEBOY_POCKETpico8g?PICO_8c64C64apple2APPLE_II_HIteletextTELETEXTmspaintMICROSOFT_WINDOWS_PAINT
mono_greeng        
MONO_GREEN
mono_amber
MONO_AMBERneon
NEON_CYBERpastelg?PASTEL_DREAMc                   V\         9  d    \        RV: R\        \         4       24      h/ \         V,          CVCp\        P                  ! V 4      P                  R4      p\        P                  ! V4      P                  VR,          4      p\        P                  ! V4      P                  VR,          4      p\        P                  ! V4      P                  VR,          4      p\        P                  ! WTR,          4      pVP                  w  rgVR,          pVP                  \        ^Wh,          4      \        ^Wx,          4      3\        P                   4      p	VR	,          p
\#        V
\$        4      '       d.   \'        V
4      pV	P)                  V\        P*                  R
7      pM*V	P)                  \-        V
4      \        P*                  R7      pVP                  Wg3\        P                   4      pVP/                  VR4       V# )a  Convert an image to retro pixel art.

Args:
    input_path: path to source image
    output_path: path to save the resulting PNG
    preset: one of PRESETS (arcade, snes, nes, gameboy, pico8, c64, ...)
    **overrides: optionally override any preset field. In particular:
        palette: int (adaptive N colors) OR str (named palette from PALETTES)
        block:   int pixel block size
        contrast / color / sharpness / posterize_bits: numeric enhancers

Returns:
    The resulting PIL.Image.
zUnknown preset z. Choose from: RGBr   r	   r
   r   r   r   )r   dither)colorsr)   PNG)PRESETS
ValueErrorsortedr   openconvertr   ContrastenhanceColor	Sharpnessr   	posterizesizeresizemaxNEAREST
isinstancestrr   quantizeFLOYDSTEINBERGintsave)
input_pathoutput_pathpreset	overridescfgimgwhr   smallpalpal_img	quantizedresults   &&&,          e/opt/hermes-venv/lib/python3.14/site-packages/../../../skills/creative/pixel-art/scripts/pixel_art.py	pixel_artrN   W   s    WfZvg6GH
 	
 +WV_
*	
*C
**Z
 
(
(
/C



$
,
,S_
=C


S
!
)
)#g,
7C

 
 
%
-
-c+.>
?C


S&6"7
8C88DALEJJ	Q
	SAJ/0E i.C#s%c*NN75;O;ONP	 NN#c(5;O;ONP	qfemm4F
KKU#M    c                     ^ RI p V P                  RR7      pVP                  R4       VP                  R4       VP                  RR\        \        4      R7       VP                  R	RR
\        \
        4       2R7       VP                  R\        RR7       VP                  4       p/ pVP                  e    \        VP                  4      VR&   VP                  e   VP                  VR&   \        VP                  VP                  3RVP                  /VB  \        RVP                   24       R#   \         d    TP                  TR&    Li ; i)    NzConvert image to pixel art.)descriptioninputoutputz--presetr   )defaultchoicesz	--palettez#Override palette: int or name from )rU   helpz--block)typerU   r   r   rB   zWrote )argparseArgumentParseradd_argumentr.   r,   r   r>   
parse_argsr   r-   r   rN   rS   rT   rB   print)rY   pargsrC   s       rM   mainr`      s   ,IJANN7NN8NN:xNINN;=fX>N=OP  RNN93N5<<>DI||	0#&t||#4Ii  zz!ZZ	'djj$++GdkkGYG	F4;;-
 !  	0#'<<Ii 	0s   7D3 3EE__main__N)r   )__doc__PILr   r   r   palettesr   r   ImportErrorr,   rN   r`   __name__ rO   rM   <module>rh      sU   . -77 C#{C!WaB C#{C!WaB
 
C#{C!WaE C#{C!Wa4F C#{C!Wa4D C#{C!WaH 
C#{C!WaE C#{C!Wb)] C#{C!Wb)Z C#{C!Wa4M C#{C!WaL C#{C!WaL
 C#{C!WaL C#{C!WaNq<~/d"0 zF [  7667s   C6 6DD