2011-02-28 40 views
3

使用http://www.ifans.com/forums/showthread.php?t=132024帖子從另一個問題我允許用戶輸入簽名。當用戶輸入簽名時,我想將其保存到數據庫中。我想知道是否有可能將UIImage保存爲字符串?還比從字符串重新加載UIImage?保存和加載UIImage從/到字符串

在此先感謝

+1

你爲什麼希望將其存儲爲一個字符串?數據庫不支持一些二進制數據格式嗎? – zoul

+0

接受的答案不正確。您不應該試圖將PNG表示的二進制數據表示爲字符串。恕我直言,namk42c的答案應該被接受。或者,更好的是,上面的zoul的註釋是快速的(即不應該將它轉換爲字符串,並且應該作爲BLOB存儲在數據庫中)。 – Rob

回答

3

是的,你可以代表它作爲NSData,然後將其轉換爲NSString

NSData *imageData = UIImagePNGRepresentation(yourPNGImage); 
NSString *imageString = [[NSString alloc] initWithBytes: [imageData bytes] length:[imageData length] encoding:NSUTF8StringEncoding]; 

JPEG圖像中的情況下,你可以很容易地使用UIImageJPEGRepresentation istead的UIImagePNGRepresentation

4

您應該將UIImage對象保存爲Base64字符串:

  1. 使用UIImageJPEGRepresentation

  2. 轉換NSData爲Base64字符串,然後保存編碼字符串到數據庫轉換UIImageNSData

要加載圖像,請反轉該過程。

  1. 從保存的Base64編碼字符串中創建一個NSData對象。

  2. 使用[UIImage initWithData]初始化一個UIImage對象。

2
NSData *data = UIImageJPEGRepresentation(Imagename, 1.0f); 
NSString *imageString = [NSString stringWithFormat:@"%@",data];