Just wanted to share my notes with everyone on how the kobo touch displays images and the conversion process. I've also created a custom boot animation if anyone's interested.
Code:
############################################################################################################
# raw to png
input=reboot.raw
output=output.png
ffmpeg -f rawvideo -pix_fmt rgb565 -s 800x600 -i <(head -c 960000 "$input") \
-vf transpose=1 -y "$output" < /dev/null
############################################################################################################
# png to raw
# note the extra.raw is to create an image just like the ones found in /etc/images. It's unkonwn to me if the extra bytes are needed but I add them just incase.
zcat ghostbuster.raw.gz | tail -c +960001 > extra.raw
input=on-0.png
output=testing.raw
ffmpeg -i "$input" \
-vf transpose=2 -f rawvideo -pix_fmt rgb565 -s 600x800 -y "$output" < /dev/null
cat extra.raw >> "$output"
############################################################################################################
# ssh and telnet
printf "user root\nput testing.raw" | ftp -in 192.168.0.158
telnet 192.168.0.158
user root
cat testing.raw | /usr/local/Kobo/pickel showpic
############################################################################################################
# extract all default images
cd /home/foo/unsorted/kobo/kobocopy/etc/images
for input in *.raw.gz; do
ffmpeg -f rawvideo -pix_fmt rgb565 -s 800x600 -i <(zcat "$input" | head -c 960000) \
-vf transpose=1 -y "${input%%.*}.png" < /dev/null
done
############################################################################################################
# get extra leading information
cd /home/foo/unsorted/kobo/kobocopy/etc/images
for input in *.raw.gz; do
zcat "$input" | tail -c +960001 > "${input%%.*}-extra.bin"
done
for input in *extra.bin; do
diff -s on-5-extra.bin "$input"
done
############################################################################################################
# notes
In the default images there's extra information at the end of each image, and it's exactly the same for each image.
The extra bytes are 1.2 MB (1219072 bytes) of null bytes minus the 7 bytes listed below. Significance unknown, maybe a watermark?
...
00000FFC 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 40 21 00 00 00 00 00 00 00 00 00 00 40 21 00 00 40 21 00 00 00 00 00 00 00 00 00 .................@!..........@!..@!.........
...
# what is this?
/usr/local/Kobo/pickel disable.rtc.alarm
############################################################################################################
Custom Boot Animation.
Edit: Added More Images.