我对处理图像有点新意,有很多我不知道的事情,所以请耐心等待。基本上我用相机拍摄图像,并将其显示在UIImageView
内,这是小视图60:80。图像会自动调整大小以适合UIImageView
,一切看起来都很好。
我的问题是 - 我是否需要做更多的图像操作(为了最大限度地提高效率),或者这就是全部?
答案 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;
}
Save
在document directory
中使用unique names
调整了图片大小。后来access thumbnail image
来自document directory
。
如果图像数量为more
,则使用lazy loading
图像来显示图像。
答案 2 :(得分:0)
如果您对图片的显示方式感到满意,那么您不需要任何其他代码。图像视图没有问题为您重新缩放图像,它们非常有效,所以不要担心。