0

在我的应用程序中,我从相机捕获图像。那时我的图像的清晰度非常好,但是通过以下代码行,我的图像被移动到下一个视图。

- (UIImage *) imageFromView:(UIView *)view {

    UIGraphicsBeginImageContext(view.bounds.size);
    [view.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return viewImage;
}

当我当时在下一个视图中看到图像时,它没有以前那么清晰。

我想提一下,在两个屏幕上,图像视图的高度和宽度是相同的。

那么图像清晰度应该是什么问题?

4

2 回答 2

2

使用这条线

UIGraphicsBeginImageContextWithOptions(view.bounds.size, NO, 0.0);

代替
UIGraphicsBeginImageContext(view.bounds.size);

于 2012-12-18T06:14:02.113 回答
0

您需要将图像偏移 0.5,0.5。否则 Quartz 将每个点分配给 4 个邻居。

在 Quartz 0.0 中是一个像素的角,而不是它的中心。

CGContextTranslateCTM(context, 0.5, 0.5);

请参阅:https ://developer.apple.com/library/mac/ipad/#documentation/graphicsimaging/reference/CGContext/Reference/reference.html

于 2012-12-18T05:57:26.137 回答