UIViewContentModeScaleAspectFit iphone sdk提供低质量的图像

时间:2010-10-20 13:14:10

标签: iphone resize uiimageview uiimage

希望快一点?我正在创建一个自定义的uitableviewcell并添加了一个imageview。 我有一些大约200x200的PNG图像。我想创建一个缩略图以放入tableview,但是当我调整图像大小时,会导致图像质量不佳。

我使用UIViewContentModeScaleAspectFit将其调整为50x50帧。

Poor quality image from resize

在把它放到表格单元格之前,我应该在每张图像上调用更好的绘图调整大小吗?每张桌子上会有大约20-40张图片,所以我不想过度使用该设备!!

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

使用CoreGraphics自行重新调整图像可以让您更好地控制图像质量,但最好的办法是首先适当调整图像大小 - 软件必须做的工作少,并完全控制图像外观

如果您仍想在Quartz中调整它们的大小,可以采用以下方法:

UIImage* originalThumbnail = [UIImage imageWithContentsOfFile:<PATH_TO_IMAGE>];

CGSize originalSize = [originalThumbnail size];
CGSize cropSize = { 50, 50 };

CGRect cropRect = CGRectMake(abs(cropSize.width - originalSize.width)/2.0, abs(cropSize.height - originalSize.height)/2.0, cropSize.width, cropSize.height);

CGImageRef imageRef = CGImageCreateWithImageInRect([originalThumbnail CGImage], cropRect);

// here's your cropped UIImage
UIImage* croppedThumbnail = [UIImage imageWithCGImage:imageRef];  
CGImageRelease(imageRef);

如果可能,您希望这样做一次,即不是每次构建UITableViewCell时都这样做。