制作图像方块

时间:2013-12-07 01:17:37

标签: ios objective-c cocoa-touch

我正在使用自定义相机在xcode中拍照。而不是图像是正常的大小,我想把它裁剪成正方形。我有一些代码,我认为应该可以工作但不是裁剪,而是在压缩图像。出了什么问题?提前谢谢!

以下是我用来裁剪图片的代码:

self.thumbImage = [self.photoImage resizedImageWithContentMode:UIViewContentModeScaleAspectFit
                                                                  bounds:CGSizeMake(320.0f, 320.0f)
                                                    interpolationQuality:kCGInterpolationHigh];

2 个答案:

答案 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>

我希望这有帮助,

干杯吉姆。