使用http://www.ifans.com/forums/showthread.php?t=132024帖子從另一個問題我允許用戶輸入簽名。當用戶輸入簽名時,我想將其保存到數據庫中。我想知道是否有可能將UIImage保存爲字符串?還比從字符串重新加載UIImage?保存和加載UIImage從/到字符串
在此先感謝
使用http://www.ifans.com/forums/showthread.php?t=132024帖子從另一個問題我允許用戶輸入簽名。當用戶輸入簽名時,我想將其保存到數據庫中。我想知道是否有可能將UIImage保存爲字符串?還比從字符串重新加載UIImage?保存和加載UIImage從/到字符串
在此先感謝
是的,你可以代表它作爲NSData
,然後將其轉換爲NSString
:
NSData *imageData = UIImagePNGRepresentation(yourPNGImage);
NSString *imageString = [[NSString alloc] initWithBytes: [imageData bytes] length:[imageData length] encoding:NSUTF8StringEncoding];
JPEG圖像中的情況下,你可以很容易地使用UIImageJPEGRepresentation
istead的UIImagePNGRepresentation
。
您應該將UIImage
對象保存爲Base64字符串:
轉換NSData
爲Base64字符串,然後保存編碼字符串到數據庫轉換UIImage
到NSData
。
要加載圖像,請反轉該過程。
從保存的Base64編碼字符串中創建一個NSData對象。
使用[UIImage initWithData]
初始化一個UIImage
對象。
NSData *data = UIImageJPEGRepresentation(Imagename, 1.0f);
NSString *imageString = [NSString stringWithFormat:@"%@",data];
你爲什麼希望將其存儲爲一個字符串?數據庫不支持一些二進制數據格式嗎? – zoul
接受的答案不正確。您不應該試圖將PNG表示的二進制數據表示爲字符串。恕我直言,namk42c的答案應該被接受。或者,更好的是,上面的zoul的註釋是快速的(即不應該將它轉換爲字符串,並且應該作爲BLOB存儲在數據庫中)。 – Rob