File formats contain a lot of stuff. While its true that your bitmap may be 8 bytes but the container its stored in is not.
For example a PNG file structure needs all kinds of additional data such as a fingerprint, file structure info, compression scheme, and metadata. Even tough much of this can be stripped, Photoshop is by no means optimal, the file will still be much larger than 8 bytes.
Real world analog would be a a bucket. While the bucket is pretty light say 300g its proportional weight is quite small if you fill the bucket with 10 liters of water (3%) or sand (2% lose gravel). However, the relative weight of the container is pretty significant if you want to transport a centiliter of water (3000%).
All containers have a overhead. For example the size of the array must be told somewhere and that alone eats up as such as your image data. On this note its also worth noting that due to the way drives work each file will use up a fixed amount of space say from 512 bytes to several kilobytes or so having ultra small separate files does not make sense.
So what to do?
- Encode all your image data into a single image file, called an image atlas.
- Write your image data into your source code. It will still be bigger than 8 bytes due to need of storing the array length. This may be impractical though.
- Write your own format, but you still get to the container problem. Again best to put multiple datasources into one storage file.