2

画像の扱いは初めてで、分からないことも多いので、ご容赦ください。基本的にはカメラで撮影し、UIImageView60:80の小さなビューの中に提示します。画像は に合わせて自動的にサイズ変更されUIImageView、すべて問題なく表示されます。

私の質問は - 画像操作をさらに行う必要がありますか (効率を最大化するためです)、それともすべてですか?

4

3 に答える 3

6

より良いサムネイルを提供する次のコードを使用してください

  -(UIImage *)generatePhotoThumbnail:(UIImage *)image 
  {
    CGSize size = image.size;
    CGSize croppedSize;
    CGFloat ratio = 120.0;
    CGFloat offsetX = 0.0;
    CGFloat offsetY = 0.0;

     if (size.width > size.height) {
        offsetX = (size.height - size.width) / 2;
        croppedSize = CGSizeMake(size.height, size.height);
     } else 
         {
        offsetY = (size.width - size.height) / 2;
        croppedSize = CGSizeMake(size.width, size.width);
     }

     CGRect clippedRect = CGRectMake(offsetX * -1, offsetY * -1, croppedSize.width, croppedSize.height);
     CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], clippedRect);

     CGRect rect = CGRectMake(0.0, 0.0, ratio, ratio);

     UIGraphicsBeginImageContext(rect.size);
     [[UIImage imageWithCGImage:imageRef] drawInRect:rect];
     UIImage *thumbnail = UIGraphicsGetImageFromCurrentImageContext();
     UIGraphicsEndImageContext();
         CGImageRelease(imageRef);

     return thumbnail;
   }
于 2012-10-30T11:17:51.950 に答える
2

Resize image functionだろう:

-(UIImage *)resizeImage:(CGSize)imgSize
  UIGraphicsBeginImageContext(imgSize);
  [image drawInRect:CGRectMake(0,0,imgSize.width,imgSize.height)];
  UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  return newImage;
}

Saveで画像のサイズを変更しdocument directoryましたunique namesaccess thumbnail imageから後でdocument directory

画像の数が画像を表示するための画像のmore使用より多い場合lazy loading

于 2012-10-30T10:59:25.263 に答える
0

画像の表示方法に問題がなければ、追加のコードは必要ありません。画像ビューでは、画像の再スケーリングに問題はなく、非常に効率的であるため、心配する必要はありません。

于 2012-10-30T11:24:50.850 に答える