2012-02-13 96 views
2

我面临以下问题:我有几个UIImage(不是平方),我需要调整大小和裁剪它们。我已经阅读了关于StackOverflow的几乎所有问题,但是我得到的结果并不好,我的意思是生成的图像质量差(模糊)。
这是情形:
1)原始图像尺寸:宽208像素 - 高度可变(即,从50到2500)
2)结果的图像:宽度100像素 - 高度最大200像素iOS调整大小和裁剪不平方的图像 - 高质量

这就是我迄今所做实现这一结果:

..... // missing code 
CGFloat height = (100*image.size.height)/image.size.width; 
self.thumbnail=[image resizedImage:CGSizeMake(100,height) 
       interpolationQuality:kCGInterpolationHigh]; 

..... // missing code 

,我用它来调整图像的方法可以发现here,一旦调整图像的大小我使用下面的代码它裁剪:

CGRect croppedRect; 
croppedRect = CGRectMake(0, 0, self.thumbnail.size.width, 200); 
CGImageRef tmp = CGImageCreateWithImageInRect([self.thumbnail CGImage], 
                  croppedRect); 
self.thumbnail = [UIImage imageWithCGImage:tmp]; 
CGImageRelease(tmp); 

长话短说,图像被调整大小和裁剪,但质量真的很差,因为原始图像质量非常好。
所以问题是如何实现这个保持高质量的图像?

回答

1

如果您定位iOS 4及更高版本,则应使用ImageIO调整图像大小。

http://www.cocoabyss.com/coding-practice/uiimage-scaling-using-imageio/

+0

感谢您的回复,我读过您的文章(真的很好的工作),但可能是因为我缺乏经验,我开始使用ImageIO的结果是最差:(....基本上我所做的就是使用我想要调整大小的图像初始化CGImageSource,我已经使用了与示例中使用的相同的选项字典,更改了maxSize的值(首先怀疑只有一个值?),并且创建了来自源代码的缩略图,但正如我所说的那样,图像非常模糊,我不明白的一点是如何为缩略图指定尺寸? – 2012-02-13 11:15:08

+0

您指定了最大尺寸,对于您的情况,指定了最大尺寸,以及图像将被缩放以适应该最大尺寸。 – Nyx0uf 2012-02-13 12:52:05