2013-10-17 58 views
2

在我的应用程序中,我转换并处理图像。 从颜色到灰度,然后进行诸如直方图均衡,过滤等操作。 该部分正常工作。iOS - 将UIImage保存为灰度JPEG

我的UIImage显示正确,我也将它们保存到jpeg文件,它的工作原理。

唯一的问题是,虽然我的图像现在是灰度,但它们仍然保存为RGB jpegs。即每个像素的红色,绿色和蓝色值都是相同的,但仍然会浪费空间来保留重复的值,从而使文件大小高于其可能值。

所以当我在Photoshop中打开图像文件时,它是黑色的&白色,但是当我检查“Photoshop>图像>模式”时,它仍然会显示“RGB”而不是“灰度”。

任何人都知道如何告诉iOS,UIImageJPEGRepresentation调用应该创建每个像素一个通道而不是4个数据的数据?

在此先感谢。

回答

1

您应该使用CGColorSpaceCreateDeviceGray()作为颜色空间(每个组件为1个通道8位)来显式转换图像。

+0

听起来很有希望,会检查出来! – MikaelW

+0

@MikaelW我认为这个答案应该被接受。 – Rob