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

时间:2010-05-04 02:46:38

标签: iphone image

寻找一个简单的示例或指向教程的链接。

假设我有一堆存储在数组中的值。我想创建一个图像并更新我的数组中的图像数据。假设数组值是强度数据并且将更新灰度图像。假设数组值在0到255之间 - 或者我将它转换为该范围。

这不是用于动画的目的。而是基于用户交互来更新图像。这是我知道如何在Java中做得很好,但对于iPhone编程来说却是一个新手。我已经搜索了一些关于CGImage和UIImage的信息 - 但是对于从哪里开始感到困惑。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:4)

我有一个来自我的应用程序的示例代码,它将数据存储为unsigned char数组并将其转换为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 :(得分:1)

如果你的颜色空间是RGB,你需要将alpha值作为kCGImageAlphaPremultipliedLast帐号传递给CGBitmapContextCreate函数的最后一个参数。

不要使用kCGImageAlphaLast,这不起作用,因为位图上下文不支持未预乘的alpha。

答案 2 :(得分:0)

我在this SO answer中引用的书籍都包含示例代码以及通过用户交互进行图像处理和更新的演示。