Kal*_*lle 2 iphone image-processing uiimage ios4
我正在尝试使用以下代码将UIView缩小的屏幕截图缩小到缩略图大小,
UIGraphicsBeginImageContext(size);
[canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
result = [UIGraphicsGetImageFromCurrentImageContext() retain];
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
上面的代码将简单地抓取原始未填充大小的视图的左上部分.
我确定我之前已经这样做了,但我无法让它发挥作用.谁知道这里有什么?
假设您有一个CGSize origSize
原始大小(例如768x1024)和一个CGSize size
所需大小,可以这样做:
CGFloat scaleX = size.width / origSize.width;
CGFloat scaleY = size.height / origSize.height;
UIGraphicsBeginImageContextWithOptions(origSize, NO, scaleX > scaleY ? scaleY : scaleX);
[canvas.layer renderInContext:UIGraphicsGetCurrentContext()];
result = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)
请注意,我们origSize
在开始的上下文中使用,而不是size
.比例也会影响尺寸.
更新(大约一年后):请注意,此技术会干扰UIView
正在拍摄的变换(或受其干扰).如果上面的方法不起作用并且您正在对视图(或其图层)进行缩放转换,您可能需要使用此解决方案:如何缩小UIImage并同时使其变得清脆/锐利而不是模糊?
归档时间: |
|
查看次数: |
1514 次 |
最近记录: |