这是iOS开发者中心的一个相机演示,用于缩小图像的功能在下面。我遇到的问题是图像在宽度<高度时被拉伸。但是,我需要将图像缩放并缩小为正方形(宽度:高度 = 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;
}