# # emu-ivcc-ALL.sh - apply all 5 color corrections for src.png, to get dst.png # # # prepare misc # BRI=-10 # brightness CON=40 # contrast GAM=1.30 # gamma SAT=-30 # saturation CB_R=20 # color balance: R CB_G=10 # color balance: G CB_B=-10 # color balance: B PPM="ppm-chain" TMP="ppm-tmp" TRUE="1" # # start corrections # pngtopnm src.png | ppmtoppm > $PPM # # [1] Brightness # [2] Contrast # if [ 1 = $TRUE ]; then awk -v gen_map=1 -v b=$BRI -v c=$CON -f v-emu-ivcc.awk \ | pgmtoppm white > c-map.ppm cat $PPM | ppmtorgb3 pgmtoppm -map c-map.ppm noname.red | ppmtopgm > $TMP.red pgmtoppm -map c-map.ppm noname.grn | ppmtopgm > $TMP.grn pgmtoppm -map c-map.ppm noname.blu | ppmtopgm > $TMP.blu rm c-map.ppm noname.??? rgb3toppm $TMP.red $TMP.grn $TMP.blu > $PPM rm $TMP.red $TMP.grn $TMP.blu fi # # [3] Gammma correction # if [ 1 = $TRUE ]; then pnmgamma $GAM $PPM > $TMP mv $TMP $PPM fi # # [4] Saturation # if [ 1 = $TRUE ]; then cat $PPM | ppmtoppm -plain | awk -v sat=$SAT -f v-emu-ivsat.awk \ | ppmtoppm > $TMP mv $TMP $PPM fi # # [5] Color-balance # if [ 1 = $TRUE ]; then cat $PPM | ppmtorgb3 pamfunc -add $CB_R noname.red > $TMP.red pamfunc -add $CB_G noname.grn > $TMP.grn pamfunc -add $CB_B noname.blu > $TMP.blu rm noname.??? rgb3toppm $TMP.red $TMP.grn $TMP.blu > $PPM rm $TMP.red $TMP.grn $TMP.blu fi # # finish # pnmtopng $PPM > dst.png rm $PPM