为什么这些UIImages如此“模糊”?

时间:2011-03-24 16:26:58

标签: iphone image ipad image-processing uiimage

在我正在处理的应用中,我有一些UIImage由于某种原因而出现的确非常模糊。这特别适用于我使用的两个相当小的图标(80x15和65x15)。

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.pngweblink.png

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:2)

什么是attriboffset?

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

答案 2 :(得分:0)

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

尝试将 UIButton contentMode属性更改为UIViewContentModeCenter。默认值为UIViewContentModeStretch

答案 3 :(得分:0)

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