11

Safariの[画像を保持して保存]オプションを使用して、シミュレータのフォトライブラリにいくつかの写真を保存しました。ライブラリから画像を選択するときは、サーバーにアップロードできるように、画像をJPEGまたはPNGに変換する必要があります。問題は、元の画像のサイズが約200 KBですが、PNGに変換した後の画像が約2MBであるということです。オブジェクトをUIImagePNGRepresentationに変換してから画像を投稿するために使用しています。UIImageNSData

  1. ここで何が欠けていますか?画像のサイズが元のサイズより大きくなるのはなぜですか?どうすればこれを防ぐことができますか?

  2. UIImageJPEGRepresentationとの違いは何UIImagePNGRepresentationですか?どちらを使用する必要がありますか(推奨)?

  3. フォトライブラリからロードされた画像の種類を判別できますか?

  4. iPhoneカメラでキャプチャされるデフォルトの画像の種類は何ですか?

4

2 に答える 2

10

元の画像はJPEGとして保存されていると思います。

PNGは、スクリーンショットや線画などを保存するために設計されています。写真などを保存するためのものではありません。

すべては使用される圧縮のタイプに帰着します。PNGはロスレス圧縮を使用するため、画像は元の画像とまったく同じになります。JPEGは不可逆圧縮を使用しており、結果の画像は元の画像に近似しています。

損失の多いJPEGを取得してPNGとして保存すると、サイズが大きくなります。これまで見てきたように、多くの場合、サイズが大きくなります。

問題の解決策は、画像をアップロードする前に画像に何もしないことです。それらはすでにPNG、GIF、またはJPEG画像になります。それはあなたがアップロードすべきものです。

iPhoneカメラで保存される画像の形式はJPEGです。

一般的に、 PNGJPEGをある程度読む必要があるようです。

于 2009-01-30T11:03:57.433 に答える