我的印象是UIImageView会相应地缩放你的图像,但我不确定我是否理解正确。所以我在两个地方有一个图像,一个比另一个小。在较小的区域,图片不清晰。我对这一小块区域所做的是:
UIImageView *container = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];
UIImageView *graphic = [[[UIImageView alloc] initWithFrame:CGRectMake(10, 10 , 120, 120)] autorelease];
[graphic setImage:[UIImage imageNamed:@"test.png"]];
graphic.contentMode = UIViewContentModeScaleAspectFit;
[container addSubview:graphic];
UIGraphicsBeginImageContextWithOptions(container.bounds.size, NO, 1.0);
[container.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext(); 基本上我有我的图形作为容器的子视图。就像扑克牌上的图像一样,然后这个方法将viewImage返回给我。但是当我看扑克牌上的图像时,它没有其他地方的图像那么清晰,因为我只是把它放在更大的图像视图中。这是有原因的吗?谢谢。
第一张图片,清晰:

第二张图片,没有那么清晰:

发布于 2012-04-04 03:10:09
很简单。您在UIGraphicsBeginImageContextWithOptions调用中设置了1.0的scaleFactor。这将导致您的艺术被渲染为50%的大小,如果你运行在一个视网膜屏幕的设备上。您可以将1.0更改为2.0,或者更好的方法是从UIDevice类获取比例因子。
https://stackoverflow.com/questions/9999632
复制相似问题