2011-03-24 82 views
0

在我正在工作的应用程序中,我有几个UIImage,由于某种原因出现非常模糊。这特别适用于我使用的两个相当小的图标(80x15和65x15)。为什么这些UIImage如此“模糊”?

Top is original, below is blurry

iPad Simulator

(更新:增加了iPad的模拟器输出,以及 - 它是模糊的,就像iPad的输出)

左上角和右上角是原始图像,左下和右下他们是如何在iPad上出现的。我实际上抱怨这些用户很模糊,所以它不仅仅是我。

其中这些一个到位的代码看起来是这样的(可以显示在请求的另外一个代码):原始图像(如果你认为这可能是一个格式问题

UIButton *bWeb = [[UIButton alloc] initWithFrame: 
    CGRectMake(attriboffset, height - 20.f, 65.f, 15.f)]; 

[bWeb addTarget:self action:@selector(clickWebLink:) 
    forControlEvents:UIControlEventTouchUpInside]; 

bWeb.userInteractionEnabled = YES; 

[bWeb setImage:[UIImage imageNamed:@"button-weblink-65x15.png"] 
    forState:UIControlStateNormal]; 
[bWeb setImage:[UIImage imageNamed:@"button-weblink-highlighted-65x15.png"] 
    forState:UIControlStateHighlighted]; 

[self addSubview:bWeb]; 
[bWeb release]; 

与实际的PNG文件):cc-by.png,weblink.png

+0

什么是图像的dpi? – 2011-03-24 16:32:27

回答

3

确保UIButton的帧中的所有数字都被舍入/截断为整数。

+0

就是这样! attriboffset没有四舍五入,导致了这个问题。谢谢! – Kalle 2011-03-24 16:55:29

0

我认为,由于某种原因,图像被呈现某种不必要的处理,导致质量损失。

尝试将您的UIButtoncontentMode属性更改为UIViewContentModeCenter。缺省值是UIViewContentModeStretch

+0

原因是attriboffset未被取整,这是问题的原因。 – Kalle 2011-03-24 16:56:12

+0

对啊!我知道某些处理正在进行,你不需要! :D – 2011-03-24 18:32:40

0

在预览中打开图像并重新保存它们。

2

attriboffset是什么?

就像hoha说的那样,如果数字不是整数,那么最终会得到分数偏移,并且设备会做一些模糊的抗锯齿来弥补这一点。数字不应该有分数。