1

是的,正如标题所说,我需要对我的应用进行裁剪快照。

我想稍微切掉屏幕截图的顶部(%20)我已经有一个代码,我用来拍摄快照并将其发送到 Facebook 并且它正在工作,但是它拍摄了所有屏幕的照片,所以如何告诉我的代码忽略屏幕的 %20%。也许还有高度和宽度我在堆栈溢出中查看了一些问题并设法滑动我的屏幕截图,所以我摆脱了顶部不需要的部分,但这次是在底部巨大的白色区域出现所以它没有解决我的问题。

这是我的快照代码

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

1 回答 1

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];
于 2013-02-02T21:24:58.570 回答