2011-02-28 5 views
3

別の質問のhttp://www.ifans.com/forums/showthread.php?t=132024投稿を使用して、ユーザーが署名を入力できるようにしています。ユーザーが署名の入力を終えたら、私はそれをデータベースに保存します。 UIImageを文字列に保存することが可能かどうかを知りたいですか?そしてまた、文字列からUIImageをリロードするよりも?UIImageを保存して文字列にロードする

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

JPEG画像の場合は、あなたが簡単にUIImagePNGRepresentationUIImageJPEGRepresentation isteadを使用することができます。

+1

は、なぜあなたは、文字列としてそれを保存したいですか?データベースがバイナリデータフォーマットをサポートしていませんか? – zoul

+0

受け付けた回答が正しくありません。文字列としてPNG表現のバイナリデータを表現しようとしてはいけません。 namk42cの回答は、IMHOで受け付けるべきです。または、上のzoulのコメントは、すばやく(つまり、文字列に変換する必要はなく、BLOBとしてデータベースに格納する必要があります)ということになります。 – Rob

答えて

3

はい、あなたはNSDataとしてそれを表現し、その後NSStringにそれを変換することができ、事前に

感謝。

4

あなたはBase64文字列としてあなたUIImageオブジェクトを保存する必要があります

  1. Base64文字列にNSDataを変換し、データベースにエンコードされた文字列を保存UIImageJPEGRepresentation

  2. を使用してUIImageNSDataに変換します。

イメージをロードするには、プロセスを元に戻します。

  1. 保存されたBase64エンコードされた文字列からNSDataオブジェクトを作成します。

  2. [UIImage initWithData]を使用してUIImageオブジェクトを初期化します。

2
NSData *data = UIImageJPEGRepresentation(Imagename, 1.0f); 
NSString *imageString = [NSString stringWithFormat:@"%@",data]; 
関連する問題