2012-04-15 69 views
1

我使用两个不同的UIImageViews和UILabels呈现了合成图像,以加快在大型桌面视图中的滚动速度。不幸的是,与其他UILabel相比,主要的UILabel看起来有点模糊。renderInContext:生成带有模糊文本的图像

黑色字母“PLoS ONE”在UILabel中,它们看起来比单词“Medical”或“Medicine”更模糊。标识“PLoS one”可能同样被模糊,但不像鲜明的文本那样引人注目。
整个杂志封面是分配给UIButton的单个UIImage。

PLoS ONE label is blurry than "Medical Special" and "Medicine (Gener)" http://karlbecker.com/screen_blurry.png

这是我用来绘制图像的代码。 magazineView是一个125×151像素的矩形。 我已经尝试了不同的缩放质量,但这并没有改变任何东西。而且它不应该,因为缩放应该不会有所不同。我将这个图像分配给的UIButton与magazineView的尺寸完全相同。

UIGraphicsBeginImageContextWithOptions(magazineView.bounds.size, NO, 0.0); 
    [magazineView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
    [coverImage release]; 
    coverImage = UIGraphicsGetImageFromCurrentImageContext(); 
    [coverImage retain]; 
    UIGraphicsEndImageContext(); 

任何想法为什么它模糊?

当我开始一个图像上下文并立即渲染它时,渲染是在偶数像素上发生的,还是我需要手动设置渲染发生的位置?

+0

125 151像素或点?如果是后者,如果您为Retina构建并在模拟器中查看像素对像素,该怎么办?你发现文字模糊,或像素翻倍? – 2012-04-15 23:09:54

+0

我注意到模拟器没有呈现完美边缘的文本,但它在电话本身上变得很好。我不知道这是否是你的情况。 – 2012-04-16 01:43:00

+0

@Peter:感谢您的更正 - 这是125点151点,因为我从视图的框架属性中获得了这一点。 [模拟器中的视网膜显示](http://karlbecker.com/screen_blurry_retina.png) 它在Retina中的模拟器上看起来非常好(请注意,该图稿尚未升级为Retina) Inturbidus:设备上相同,在模拟器中,至少对于普通的iPad。视网膜文字看起来好多了,好多了......无法解释这种差异。 – 2012-04-16 03:10:01

回答

6

确保您的标签坐标是整数值。如果他们不是整数,他们会看起来模糊。