1. ホーム
  2. ios

[解決済み] iOSで画像サイズを簡単に変更するには?

2022-05-13 22:32:42

質問

私のアプリケーションは、ネットワークから一連の画像ファイルをダウンロードし、ローカルの iPhone ディスクに保存しています。それらの画像のいくつかはかなり大きなサイズです (たとえば、幅が 500 ピクセルより大きいもの)。iPhone には、画像を元のサイズで表示するのに十分な大きさのディスプレイもないので、スペースやパフォーマンスを節約するために、画像を少し小さいものにリサイズすることを計画しています。

また、これらの画像の一部はJPEGであり、通常の60%の画質設定で保存されているわけではありません。

iPhone SDK で画像のサイズを変更する方法と、JPEG 画像の画質設定を変更する方法を教えてください。

どのように解決するのですか?

への回答として、いくつかの提案が提供されています。 この質問 . で説明されているテクニックを提案したことがあります。 この投稿 で説明されているテクニックを提案し、関連するコードを添えました。

+ (UIImage*)imageWithImage:(UIImage*)image 
               scaledToSize:(CGSize)newSize;
{
   UIGraphicsBeginImageContext( newSize );
   [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
   UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
   UIGraphicsEndImageContext();

   return newImage;
}

画像の保存に関しては、iPhone で使用する最も高速な画像形式は PNG で、その形式に対して最適化が行われているからです。 しかし、これらの画像をJPEGとして保存したい場合は、UIImageを使用して、次のようにします。

NSData *dataForJPEGFile = UIImageJPEGRepresentation(theImage, 0.6);

これは、60%の品質設定のJPEG画像の生バイトを含むNSDataインスタンスを作成します。 その NSData インスタンスの内容は、ディスクに書き込んだり、メモリにキャッシュしたりすることができます。