Ios裁剪一些零件后拍摄屏幕快照

时间:2013-02-02 20:49:17

标签: ios image crop

是的,因为标题说我需要拍摄我的应用程序的裁剪快照。

我想截取顶部的屏幕截图(%20)我已经有一个代码,我曾经拍摄快照并将其发送到Facebook及其工作,但它拍摄了所有屏幕的照片,所以怎么能告诉我的代码忽略屏幕的百分之二十。可能有高度和宽度我也看了一些问题在堆栈溢出并设法滑动我的截图,所以我摆脱了顶部的不需要的部分,但这次在底部出现了巨大的白色区域,所以它没有解决我的问题。

这是我的快照代码

UIGraphicsBeginImageContext(self.ekran.bounds.size);
    [self.ekran.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

1 个答案:

答案 0 :(得分:0)

裁剪图像的方法,接受任何帧以裁剪图像

- (UIImage *)cropImage:(UIImage *)imageToCrop toRect:(CGRect)rect
    {    
        CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
        UIImage *cropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);

        return cropped;
    }

按如下方式使用:

UIGraphicsBeginImageContext(self.ekran.bounds.size);
[self.ekran.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *resultingImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

CGFloat imgHight = resultingImage.size.height;

// Create a frame that crops the top 20% of the image
CGRect* imageFrame = CGRectMake(0, imgHight -  (imgHight*0.8), width, imgHight*0.8);

resultingImage = [self cropImage:resultingImage toRect:imageFrame];