Is it possible to convert NSData/UIImage Data Representation as JPEG to a String, to be sent over HTTP to a PHP File to save this string in a database, and then retrive it later on in the application and convert it back into an NSData/UIImage Object?
I have tried Base64 Encoding Libraries but base64 doesn’t seem valid as the image doesn’t display correctly on a HTML Page.
Any suggestions?
Edit.
I was using the following library:
http://www.imthi.com/blog/programming/iphone-sdk-base64-encode-decode.php
And converting in the following way:
NSData *imageData = UIImageJPEGRepresentation(MyImage.image, 90);
[Base64 initialize];
NSData *encoded = [Base64 encode:imageData];
NSLog(@"%@",encoded);
This does chug out alot of BASE64 but when I save it to a file and try to view it, I just get the eror loading image [?] in Chrome.
Thanks
The point of encoding an
NSDataobject to base 64 is so you can represent the data as a string that can be stored or transferred more easily. You then need to decode the base 64 encoded string back intoNSData. This data can then be used to create a newUIImage. Your server needs to do this decoding to get back the original data.Your code has a mistake. This line:
should be:
Notice that you get back a string, not data.
You commented that you wrote the encoded string to a file then couldn’t view the image. Of course not. If you want to write the image data to a file so the file is actually viewable as the image, then don’t encode the data first. Write the raw image data to a file.