iPhone アプリでは、標準の HTTP 要求を使用してサーバーから JPG 画像を読み込みます。データは NSData として返され、関数を使用して UIImage に変換でき[UIImage imageWithData:responseData]
ます。私の質問は、画像の UIImage 表現を元の NSData に戻すことはできますか? 関数については知っていUIImageJPEGRepresentation()
ますが、compressionQuality を 1 にして試してみたところ、元の NSData とは異なる結果が得られました。
2138 次
2 に答える
3
おそらく、UIImage が JPEG 形式で内部的に保存されていないためだと思います。JPEG 圧縮の仕組みにより、JPEG に戻す変換でまったく同じデータが得られる可能性はほとんどありません。元の NSData を保持できない理由はありますか?
于 2011-06-27T16:59:18.693 に答える
2
UIImagePNGRepresentation() を使用し、ファイルを PNG としてデバイスにも送信する必要があります。PNG は、デバイスでの読み込みと保存がはるかに効率的です。これは、バイト配列 (NSData) を画像に変換する標準的な方法です。
JPEG データに行き詰まっている場合は、UIImageJPEGRepresentation() がそれを NSData オブジェクトに戻す正しい方法です。Apple がそのメソッドをどのように実装したかによっては、技術的には同じ画像でありながら一部のデータを更新することができます (同じ画像をレンダリングします)。
于 2011-06-27T16:37:50.280 に答える