| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/bin/bash
- [ -z $1 ] && {
- echo "Specify an image"
- echo "gimp -> export -> c source file -> [x] gunit names"
- exit 2
- }
- echo $*
- for N in $* ; do
- [ ! -f $N ] && {
- echo "!! File missing $N"
- continue
- }
- # filename (sans extension)
- FN=$(basename -- "$N")
- EXT="${FN##*.}"
- NAME="${FN%.*}"
- OUTDIR=img_/
- mkdir -p ${OUTDIR}
- HDR=${OUTDIR}/images.h
- SRC=${OUTDIR}/images.c
- OUT=${OUTDIR}/img_${NAME}.c
- echo -e "\n¦${N}¦ == ¦${NAME}¦ -> ¦${OUT}¦"
- TESTX=test_${NAME}
- TESTC=test_${NAME}.c
- # compile name
- CONV=${NAME}_
- # clean up gimp output
- sed -e "s/gimp_image/img/g" \
- -e 's/guint8/unsigned char/g' \
- -e 's/width/w/g' \
- -e 's/height/h/g' \
- -e 's/bytes_per_pixel/bpp/g' \
- -e 's/pixel_data/b/g' \
- -e 's/guint/unsigned int/g' \
- $N \
- | grep -v ^/ \
- | grep -v ^$ \
- > ${CONV}.c
- # append conversion code
- cat _convert.c >> ${CONV}.c
- # compile & run converter
- rm -f ${CONV}
- gcc ${CONV}.c -DIMGTEST -o ${CONV}
- ./${CONV} ${NAME} ${OUT}
- rm -f ${CONV} ${CONV}.c
- # (create &) update header
- [[ ! -f ${HDR} ]] && cp _convert_images.h ${HDR}
- sed -i "/ img_${NAME};/d" ${HDR}
- sed -i "s#//\[TAG\]#//\[TAG\]\nextern const image_t img_${NAME};#" ${HDR}
- # sample FZ code
- [[ ! -f images.c ]] && cp _convert_images.c ${SRC}
- # test
- ROOT=${PWD}
- pushd ${OUTDIR} >/dev/null
- sed "s/zzz/${NAME}/" ${ROOT}/_convert_test.c > ${TESTC}
- rm -f ${TESTX}
- gcc ${TESTC} ${OUT##*/} -DIMGTEST -o ${TESTX}
- ./${TESTX}
- rm -f ${TESTX} ${TESTC}
- popd >/dev/null
- done
|