我正在保存 a 的缩略图UIImage
以提高UICollectionView
滚动性能。所有图像都直立保存,直到我尝试保存自下而上拍摄的全景照片(例如:高度 - 3000,宽度 - 1000)。这倒过来保存了。我拍了一张人像照片并旋转了 90 度,因为最初图像是横向的。有没有办法用一行代码将每种类型的图像设置为直立,还是我必须捕捉每种类型的照片并相应地调整它?如果是这样怎么办?
- (void) createThumbnail: (UIImage *) image{
CGSize size = image.size;
CGFloat imageHeight = size.height;
CGFloat imageWidth = size.width;
CGSize croppedSize;
CGFloat ratio = 200.0;
CGFloat offsetX = 0.0;
CGFloat offsetY = 0.0;
if (imageWidth > imageHeight) {
offsetX = (imageHeight - imageWidth) / 2;
croppedSize = CGSizeMake(imageHeight, imageHeight);
} else {
offsetY = (imageWidth - imageHeight) / 2;
croppedSize = CGSizeMake(imageWidth, imageWidth);
}
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;
if ((imageWidth > imageHeight) || (imageWidth == imageHeight)) {
thumbnail = [[UIImage alloc]initWithCGImage:UIGraphicsGetImageFromCurrentImageContext().CGImage scale:1.0 orientation:UIImageOrientationUp];
}else{
thumbnail = [[UIImage alloc]initWithCGImage:UIGraphicsGetImageFromCurrentImageContext().CGImage scale:1.0 orientation:UIImageOrientationRight];
}
UIGraphicsEndImageContext();
return thumbnail;