0

iPhone PhotoLibrary にある既存の写真から写真を選択できるシンプルな iPhone アプリを試しています。選択した画像を次のように SQLite DB に保存しています。

        NSData *imageData = UIImagePNGRepresentation(image);        
        sqlite3_bind_blob(statement, 1, 
                          [imageData bytes], [imageData length], NULL);

上記はPNGに対してのみ行います。また、UIKit API では、JPG に対して同様の変換 (UIImage から NSData へ) のみが行われます。他の形式 (bmp、tiff、gif など) の画像に対してこれを行うにはどうすればよいですか?

UIImage クラスでは、さまざまなフォーマットに対応しているとのことですが、変換メソッドは png と jpg (UIImagePNGRepresentation と UIImageJPEGRepresentation) に対してのみ提供されています。

ここに画像の説明を入力

4

2 に答える 2

0

ここでは、さまざまな画像形式の読み取りと画像の保存という 2 つのことを別々に行っています。UIImageリストされている形式のいずれかを読み取ることができます。したがって、.bmp または .tiff を開けば問題ありません。

そのデータを再度保存する場合は、 と の 2 つの組み込みオプションがUIImagePNGRepresentationありUIImageJPEGRepresentation、それぞれ を取得してUIImage、画像の PNG または JPEG 表現に変換します。これら 2 つの関数のNSDataいずれかから取得した は、データベース (または、他の質問で説明したように、より一般的にはファイル) に書き込んでから、後で読み返すことができます。ファイルを BMP、TIFF、またはその他の形式で保存したい場合は、それを行うライブラリを見つける必要があります。

何から始めても問題ありません。アプリ内で PNG (ロスレス) または JPEG (ロッシー) ファイルとして保存できます。当然のことながら、BMP を開いて PNG として保存すると、新しい世代の画像を作成するため、品質がわずかに低下しますが、ほとんどの場合、それは目立ちません。

それが役立つことを願っています。

于 2012-05-18T17:18:44.217 に答える
0

PNG および JPEG 以外の形式で画像を生成するには、CGImageDestination を使用します。

于 2012-05-18T17:20:36.567 に答える