使用iPhone SDK创建/操作图像像素数据的示例

4
寻找一个简单的例子或链接教程。
假设我有一堆存储在数组中的值。我想创建一个图像并从我的数组更新图像数据。假设数组值是强度数据,并将更新灰度图像。假设数组值介于0和255之间 - 或者我将把它转换为该范围。
这不是为了动画目的。相反,根据用户交互,将更新图像。这是我在Java中擅长的事情,但我对iPhone编程非常陌生。我已经搜索了一些关于CGImage和UIImage的信息 - 但我不知道从哪里开始。
任何帮助都将不胜感激。

1
你可以从CGContext和CGBitmapContext入手,但我手头没有好的例子。 - drawnonward
3个回答

4

我有一份来自我的应用程序的示例代码,可以将以无符号字符数组形式存储的数据转换为UIImage:

// unsigned char *bitmap; // This is the bitmap data you already have.
// int width, height; // bitmap length should equal width * height

// Create a bitmap context with the image data
CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceGray();
CGContextRef context = CGBitmapContextCreate(bitmap, width, height, 8, width, colorspace, kCGImageAlphaNone);
CGImageRef cgImage = nil;
if (context != nil) {
    cgImage = CGBitmapContextCreateImage (context);
    CGContextRelease(context);
}
CGColorSpaceRelease(colorspace);

// Release the cgImage when done
CGImageRelease(cgImage);

1
如果您的颜色空间是RGB,并且需要考虑alpha值,请将kCGImageAlphaPremultipliedLast作为最后一个参数传递给CGBitmapContextCreate函数。
不要使用kCGImageAlphaLast,因为位图上下文不支持未预乘的alpha。

0

我在这个StackOverflow回答中提到的两本书都包含示例代码以及通过用户交互进行图像处理和更新的演示。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接