2012-04-15 31 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

確保您的標籤座標是整數值。如果他們不是整數,他們會看起來模糊。