iPhone - 以更高的分辨率保存图像,无需像素化

时间:2009-06-13 11:37:42

标签: iphone uiimage

我正在使用图像选择器控制器从用户那里获取图像。在对图像进行一些操作之后,我希望用户能够以1600x1200像素,1024x1024像素或640x480像素(类似于iFlashReady应用程序)保存图像。

最后一个选项是我在UIImagePickerControllerDelegate方法中获得的图像大小(当使用来自相机胶卷的图像时)

我们有没有办法在没有像素化的情况下以这些分辨率保存图像?

我尝试使用我想要的宽度和高度创建一个位图上下文(CGBitmapContextCreate)并在那里绘制图像。但是图像在1600x1200处被像素化。

由于

3 个答案:

答案 0 :(得分:2)

这不重要。您的图片没有足够的数据。要放大它,您需要对图像进行重新取样并在像素之间进行插值(如调整图像大小时的photoshop)。

您很可能想要使用第三方库,例如:

http://code.google.com/p/simple-iphone-image-processing/

执行此操作以及许多其他图像处理功能。

答案 1 :(得分:1)

从很久以前的计算机视觉类的微弱记忆中,我认为你所做的是在上转换后模糊图像。

答案 2 :(得分:1)

在绘制之前尝试调整CGBitmapContext的抗锯齿和/或插值质量:

CGContextSetShouldAntialias( context, 1 == 1 )

CGContextSetInterpolationQuality( context, kCGInterpolationHigh ) ;

如果我没记错的话,默认情况下会在CGContext上关闭抗锯齿功能。