以下是iOS开发人员中心的相机演示,下面是用于缩小图像的功能。 我遇到的问题是图像被拉伸而其宽度<1。高度。 但是,我需要将图像缩放并缩小为正方形(宽度:高度= 1:1)。 有人有解决方案吗? 谢谢你们提前帮助他们。
static UIImage *shrinkImage(UIImage *original, CGSize size) {
CGFloat scale = [UIScreen mainScreen].scale;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width * scale,
size.height * scale, 8, 0, colorSpace, kCGImageAlphaPremultipliedFirst);
CGContextDrawImage(context,
CGRectMake(0, 0, original.size.width * scale, original.size.width * scale),
original.CGImage);
CGImageRef shrunken = CGBitmapContextCreateImage(context);
UIImage *final = [UIImage imageWithCGImage:shrunken];
CGContextRelease(context);
CGImageRelease(shrunken);
return final;
}
答案 0 :(得分:0)
-(UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize
{
if(newSize.width > newSize.height)
newSize = CGSizeMake(newSize.height, newSize.height);
else
newSize = CGSizeMake(newSize.width, newSize.width);
UIGraphicsBeginImageContextWithOptions(newSize, YES, [UIScreen mainScreen].scale);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
如果您不打算保持宽高比,您的图像肯定会看起来很紧张。