This article will show how to display image files on the Kindle without having to go through Amazon's conversion service, but by merely transferring files on Kindle's internal storage.

It used to be that you could just transfer a directory filled with JPEGs or PNGs and it would get picked up and displayed as new once you disconnect and power-up the device. I have an old 2011 directory on my Kindle that holds as evidence that in the past you were able to do that and my hack is largely based on it.

There are two methods that I know of through which you can still display picture files from a directory on the Kindle: ZIP and Transfer Transfer and Create Special Files

The special files solution is a hack I found by looking at the files created by Kindle in my old 2011 directory. By mimicking their structure I was able to once again enable directories for viewing. I also wrote a script that does all the work for you.

Put the image files in a ZIP archive and transfer it somewhere inside the documents directory found on Kindle's internal storage. A new item by the name of the archive should pop-up once you disconnect and power-on the device.

$ ./add-to-kindle.sh collection

Transfer a directory with the images somewhere inside the documents directory found on Kindle's internal storage. Run this script to create internal state and pass the collection it belongs to as its argument like so:

sketches

/kindle

sketches

work

$ cp -r sketches /kindle/documents $ cd /kindle/documents/sketches $ ./add-to-kindle.sh work

So if you had the picture directoryfilled with PNGs, and Kindle's storage mounted onand you want to addto thecollection, the following sequence would add it to your Kindle:

/kindle

sketches

Afterwards, unmountingand powering on the device should displayas the most recent item.

That's it!

For the curious, I will next describe what the script does.

There are two files that Kindle creates inside an image directory: a bookmark file and a magic file.

ITEM.COLLECTION_save

The bookmark filename has the following format:

sketch

sketch.work_save

So for theexample it would look like:

#Wed Apr 02 01:59:36 EEST 2014

The bookmark's first line is a comment containing the accessed date.

DATE=`date +"%a %b %d %T %Z %Y"` echo "#${DATE}" > "${ITEM}.${COLL}_save"

The script builds this string by using the date(1) command.

ITEM

basename(1)

pwd(1)

COLL

PWD=`pwd` ITEM=`basename "${PWD}"` COLL=$1

is built by looking at theof theoutput andis received as an argument to the script:

LAST=/mnt/us/documents/sketch/art-001.png

The second line is the actual bookmark pointing to the last read item.

documents

LAST

The important part is the one starting after. I've seenwritten both as a full path and as a relative path.

/mnt/us/documents

documents

DIR=`pwd | sed s,[\]\[_a-zA-Z/\-]*/documents,/mnt/us/documents,`

The script builds a path similar to the one I found on my old 2011 entry just to make sure it works. So all the paths will start withfollowed by the actual directory path within

ls(1)

LAST

FILE=`ls | head -1` LAST=${DIR}/${FILE} echo "LAST=${LAST}" >> "${ITEM}.${COLL}_save"

Next, the script picks the first picture listed byas its bookmark and builds thepath with it:

That takes care of the bookmark file.

ITEM.COLLECTION

The magic file is easier to build. The filename scheme is similar to that of the bookmark:

sketch

sketch.work

So for theexample it looks like:

_save

Notice the missingsuffix.

echo -en "\x00" > "${ITEM}.${COLL}"

The magic cookie is a null byte. So it's enough to do:

That's it. With this any directory containing images on your Kindle should be available for viewing. Enjoy!

All my experiments were made on a Kindle 3. Let me know if the same trick works on other models.