0

重複の可能性:
iPhone SDK を使用して画像のサイズを変更/最適化する最も簡単な方法は何ですか?

カメラで撮影した画像の解像度を 320x320 に変更したい。誰かやり方を教えてください。

カメラから画像を取得する方法を知っています。残り(すなわち)画像の解像度を変更する方法を教えてください。

前もって感謝します

4

2 に答える 2

2

これはこの投稿で呼び出されます:https ://stackoverflow.com/a/613380/1648976

+ (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インスタンスの内容は、ディスクに書き込んだり、メモリにキャッシュしたりできます。

これは、正確には320 * 320 ..に変換されませんが、0.6をより低くまたはより高くすることができます。

これがあなたの望むものでない場合は、もっと正確に教えてください

于 2012-11-06T09:00:10.523 に答える
0

1)元の画像をローパスフィルター処理し、
2)デシメートまたは
3)リサンプリング

元のサイズが640x320の場合は、LPフィルターを適用してから、他のすべてのサンプルを選択するだけで十分です。それは間引きです。

元のサイズがたとえば480x320の場合でも、元のピクセルと正確に位置合わせされていないピクセルのピクセル値をLPフィルター処理して補間する必要があります。

LPフィルタリングは非常に重要です。これがないと、たとえば、非常に高解像度のチェス盤パターンが、「周波数エイリアシング」と呼ばれる効果によって引き起こされるノイズまたは奇妙なパターンに再サンプリングされます。

于 2012-11-06T09:00:54.627 に答える