How to save image after encryption?

2 views (last 30 days)
Arshub
Arshub on 15 Jan 2022
Commented: Walter Roberson on 16 Jan 2022
I have code for encrypt an image, then ineed to save image after encryption to use it in another seperate code .
which command is prefere, imsave, imwrite? I try to use both but the saved image can't be showed correctly when i used imshow command.
  2 Comments
Arshub
Arshub on 16 Jan 2022
@Jan i mean : I have an image say 'lena.png ' if i read this image then shuffle the image, we get a new image after shuffle. I need save the new image in a new name say 'lena2.png'.
may be i need the new image 'lena2.png' in anther program to reshuffle the 'lena2.png' to get the original image lena.png '.

Sign in to comment.

Answers (2)

Walter Roberson
Walter Roberson on 16 Jan 2022
My suspicion would be that your original image is uint8 and that when you did the encryption, you did not make sure to create uint8 . Perhaps your results are all integers 0 to 255, but I suspect that class() of them is double() .
If your encrypted image is double() but only uses integers 0 to 255, then uint8() it.
If your encrypted image is double() but has some entries that are not integers 0 to 255, then you might have a problem.
  2 Comments
Walter Roberson
Walter Roberson on 16 Jan 2022
Either be more careful in doing the permutation to retain the original data type, or else take uint8() of the permutation.

Sign in to comment.


Image Analyst
Image Analyst on 16 Jan 2022
Unless your encryption produced another uint8 or uint16 image, you're probably best just saving it as a binary file with a .bin or .dat extension since no standard program will be able to read it and decrypt it successfully if you save as a .PNG extension - it will just confuse them and they'll throw an error. Something like (untested):
fid = fopen('encryptedImage.bin', 'wb');
fprintf(fid, '%c', yourImage);
fclose(fid);

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!