I have a TJC3224T132_011N display and have been playing around with reverse engineering the mcu firmware as well as the .tft files generated for this display. After figuring out how to decrypt header2 of the .tft files and getting the offsets for the various sections, I’m now trying to figure out how the images are encoded.
Looking at the dumped image in a hex editor, it looks as though it might be some sort of run length encoding, as I can see the 16bit color data inline, however it does not appear to be just the raw pixel data. It looks as though the data is broken up into 5 word (20 byte) chunks with the first word possibly defining how to interpret the next 8 pixel data.
I created a custom tft with the following 64x64 image
And here is a link to a hexdump of the image that was extracted from this tft. The pixel data is 1300 bytes with an additional 576 bytes at the end, a palette perhaps?
Anyone happen to know the format of these compressed images?
I think I am on the verge of figuring the encoding scheme out, thanks to having a firmware dump from the mcu and the ability to actually attach a debugger and step through the code.
Pixels appear to be broken up into packets of 5 words. The last 4 are the raw pixel data broken into 2 RGB565 colors per word for a total of 8 colors. The first word is broken up into 8 4-bit nibbles where each nibble corresponds to the number of times the pixel in the corresponding half-word should be repeated.
This is a new way of doing RLE to me but it works.
Wrote a little python script that does this image decoding
This forum is in no way affiliated with NEXTION®, ITEAD STUDIO®, TJC®, or anyone else really. All product names, logos, and brands are property of their respective owners. All company, product, and service names used in this website are for identification purposes only. Use of these names, logos, and brands does not imply endorsement from the respective rights holder(s).