iOS大小调整图像大小?

时间:2012-10-30 10:46:45

标签: iphone image-resizing

我对处理图像有点新意,有很多我不知道的事情,所以请耐心等待。基本上我用相机拍摄图像,并将其显示在UIImageView内,这是小视图60:80。图像会自动调整大小以适合UIImageView,一切看起来都很好。

我的问题是 - 我是否需要做更多的图像操作(为了最大限度地提高效率),或者这就是全部?

3 个答案:

答案 0 :(得分: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;
   }

答案 1 :(得分: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;
}

Savedocument directory中使用unique names调整了图片大小。后来access thumbnail image来自document directory

如果图像数量为more,则使用lazy loading图像来显示图像。

答案 2 :(得分:0)

如果您对图片的显示方式感到满意,那么您不需要任何其他代码。图像视图没有问题为您重新缩放图像,它们非常有效,所以不要担心。