抓取屏幕图像然后裁剪后我会失去分辨率吗?

Posted

技术标签:

【中文标题】抓取屏幕图像然后裁剪后我会失去分辨率吗?【英文标题】:Am I losing resolution after grabbing image of screen then cropping it? 【发布时间】:2015-10-28 02:25:21 【问题描述】:

我有一些代码,我在其中抓取屏幕图像,然后根据一些边界值对其进行裁剪:

UIGraphicsBeginImageContextWithOptions(self.mainView.bounds.size, NO, 0.0);
[self.mainView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *comicImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

UIGraphicsBeginImageContextWithOptions(CGSizeMake(boundary.width, boundary.height), NO, 0.0);
[comicImage drawAtPoint:CGPointMake(-boundary.xMin, -boundary.yMin)];
comicImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

我想知道的是,我是否使用上述方法生成了低分辨率的低质量图像?有没有更好的方法来做到这一点?

【问题讨论】:

我遇到了同样的问题。截屏并裁剪它总是使它质量很差。找不到其他选项。 【参考方案1】:

也许,您可以使用以下代码

  UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);

【讨论】:

以上是关于抓取屏幕图像然后裁剪后我会失去分辨率吗?的主要内容,如果未能解决你的问题,请参考以下文章

Javascript检测屏幕分辨率,更改css,相应裁剪图像

绘制到较小的图像时,drawInRect 会失去分辨率吗?

根据android中的矩形坐标裁剪捕获的图像

如何以全分辨率从 UIImageView 获取旋转、缩放和平移的图像?

如何在浏览器下载之前将图像裁剪为客户端分辨率

为啥我需要指定裁剪分辨率?