So, I want to implement the following idea: open the image, read pixel-by-pixel, encrypt RGB pixel data with some text key, draw up an image pixel-by-pixel with the modified RGB data.
The final image (naturally meaningless in appearance) may end up with a slight resizing or being subject to JPEG compression artifacts within reasonable limits. From what I conclude that no block data encryption algorithms in this case will work, and encryption regardless of each pixel will be too weak.
Any ideas?
Update. If you do not touch the problem of resizing, it turns out beautifully:
Source → Encrypted → Decrypted
The problem is that the encrypted image is subject to strong distortions when resizing, JPEG compression and others, since in fact this kind of graphic image must be stored in the bitmap (which makes this approach not acceptable in modern realities). It remains to try to increase the encrypted image of two to three, so that each individual pixel has an area of 2 or 3 pixels. And before debugging, look for the algorithm of the most successful return to the original size.