画像の扱いは初めてで、分からないことも多いので、ご容赦ください。基本的にはカメラで撮影し、UIImageView
60:80の小さなビューの中に提示します。画像は に合わせて自動的にサイズ変更されUIImageView
、すべて問題なく表示されます。
私の質問は - 画像操作をさらに行う必要がありますか (効率を最大化するためです)、それともすべてですか?
画像の扱いは初めてで、分からないことも多いので、ご容赦ください。基本的にはカメラで撮影し、UIImageView
60:80の小さなビューの中に提示します。画像は に合わせて自動的にサイズ変更されUIImageView
、すべて問題なく表示されます。
私の質問は - 画像操作をさらに行う必要がありますか (効率を最大化するためです)、それともすべてですか?
より良いサムネイルを提供する次のコードを使用してください
-(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;
}
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
。
画像の表示方法に問題がなければ、追加のコードは必要ありません。画像ビューでは、画像の再スケーリングに問題はなく、非常に効率的であるため、心配する必要はありません。