我正在使用自定义相机在xcode中拍照。而不是图像是正常的大小,我想把它裁剪成正方形。我有一些代码,我认为应该可以工作但不是裁剪,而是在压缩图像。出了什么问题?提前谢谢!
以下是我用来裁剪图片的代码:
self.thumbImage = [self.photoImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit
bounds:CGSizeMake(320.0f, 320.0f)
interpolationQuality:kCGInterpolationHigh];
答案 0 :(得分:0)
检查此链接 https://stackoverflow.com/a/712553/1722480
您只需获取cropRect
然后使用CGImageCreateWithImageInRect
方法
UIImage *image = [UIImage imageNamed:@"4.png"];
CGRect cropRect;
if (image.size.width > image.size.height) {
// Landscape Image
cropRect = CGRectMake((image.size.width-image.size.height)/2.0, 0, image.size.height, image.size.height);
} else {
// Portrait Image
cropRect = CGRectMake(0, (image.size.height-image.size.width)/2.0, image.size.width, image.size.width);
}
// Crop Image
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], cropRect);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
CGImageRelease(imageRef);
// Save Image
NSData *imageData = UIImagePNGRepresentation(croppedImage);
NSString *documentFolder = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
[imageData writeToFile:[documentFolder stringByAppendingPathComponent:@"croppedImage.png"] atomically:YES];
答案 1 :(得分:0)
如果您只想显示屏幕上的照片裁剪为正方形,请添加此代码,
imageView.layer.maskToBounds = YES;
其中imageView是您为imageView对象指定的名称,并且您将其设置为正方形。 您还需要将其添加到头文件
#import <QuartzCore/QuartzCore.h>
我希望这有帮助,
干杯吉姆。