Why PIE (Pixel Image Encoder)

PIE (Pixel Image Encoder) Why !!!

Naming

A few people have asked why PIE, why Pixel Image Encoder and why build this !!!.

PIE is the acronym of Pixel Image Encoder.

Why Pixel Image Encoder, The process of your data when encoding starts is to convert the bytes into pixels. These pixels are converted into an image or if the file is larger than the maximum size allowed in PIE, file is sliced then converted into images then stored in a zip file.

This whole process is called encoding. So this is why the library is called Pixel Image Encoder and referred to as PIE.

Why build this

As per the "Introduction". I thought and still think there is a way of compressing files using channels in images. The original project was to build a new compression system for files or text using these image pixels. While this project succeed in compressing files, even if the file was already compressed. It did not meet my brief, the maximum I got was an extra 5% - 7% which is not good enough.

I was going to delete the project but then new ideas come to mind.

  • AI started taking off and was taking images from the net.
  • News reports of images from the cloud were being stolen. When people uploaded sensitive images to the cloud.
  • Communications are being monitored by IP and Man in the middle attacks.
These were just a few of the problems PIE could solve.

So I kept the project but made it open source so anyone could take the code and taylor it to their needs.

I made sure PIE does not have any dependencies so it can be used in any project. PIE supports java 8 all the way to the latest version. 

I then thought although PIE can be included in existing java projects, I wanted anyone to be able to use it. So I built a command line interface so anyone can encode and decode files.