1

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

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

有什么方法可以在不像素化图像的情况下以这些分辨率保存图像?

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

谢谢

4

3 回答 3

2

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

您很可能希望使用 3rd 方库,例如:

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

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

于 2009-06-13T21:27:54.873 回答
1

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

于 2009-06-13T12:19:40.073 回答
1

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

CGContextSetShouldAntialias( context, 1 == 1 )

CGContextSetInterpolationQuality( context, kCGInterpolationHigh ) ;

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

于 2011-08-03T22:34:26.370 回答