我有一个简单的绘图问题。我准备了一个具有动画波动的二维阵列。该阵列每1/10秒更新一次(这可以由用户更改)。后,将阵列被更新我想与每个数组值与颜色范围的像素的2维图像,以显示它从0到255在ios中寻找一个简单的像素绘图方法(iphone,ipad)
上如何做到这一点最有效的任何指针...
欣赏任何帮助......
KAS
我有一个简单的绘图问题。我准备了一个具有动画波动的二维阵列。该阵列每1/10秒更新一次(这可以由用户更改)。后,将阵列被更新我想与每个数组值与颜色范围的像素的2维图像,以显示它从0到255在ios中寻找一个简单的像素绘图方法(iphone,ipad)
上如何做到这一点最有效的任何指针...
欣赏任何帮助......
KAS
如果它只是那么灰阶以下(编码为I型,可能值得检查错误)应该工作:
CGDataProviderRef dataProvider =
CGDataProviderCreateWithData(NULL, pointerToYourData, width*height, NULL);
CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceGray();
CGImageRef inputImage = CGImageCreate( width, height,
8, 8, width,
colourSpace,
kCGBitmapByteOrderDefault,
dataProvider,
NULL, NO,
kCGRenderingIntentDefault);
CGDataProviderRelease(dataProvider);
CGColorSpaceRelease(colourSpace);
UIImage *image = [UIImage imageWithCGImage:inputImage];
CGImageRelease(inputImage);
someImageView.image = image;
假设你不想写一个自定义的UIView子类(这可能只有在性能问题时才值得这个努力),那可能是一次性显示。
我对文档的理解是数据提供者只能在C缓冲区的整个生命周期内创建一次。我不认为这是真的,但如果你创建了一个CGBitmapContext来包装你的缓冲区而不是一个提供者和一个图像,那么它将会安全地继续存在,你可以使用CGBitmapContextCreateImage
来获得一个CGImageRef。如果这是一个问题,那么这两种方法都可能是值得的。
编辑:使周围的替代方法是:
// get a context from your C buffer; this is now something
// CoreGraphics could draw to...
CGColorSpaceRef colourSpace = CGColorSpaceCreateDeviceGray();
CGContextRef context =
CGBitmapContextCreate(pointerToYourData,
width, height,
8, width,
colourSpace,
kCGBitmapByteOrderDefault);
CGColorSpaceRelease(colourSpace);
// get an image of the context, which is something
// CoreGraphics can draw from...
CGImageRef image = CGBitmapContextCreateImage(context);
/* wrap in a UIImage, push to a UIImageView, as before, remember
to clean up 'image' */
CoreGraphics在副本约十分懒惰的东西,所以这些方法都应该是那样难了多个步骤的意味。
You da man Tommy ..两个解决方案的工作。我正在与第一个解决方案,目前的性能足够体面,所以我不担心子类UIView呢...谢谢。 – 2011-05-27 13:06:43
Tommy ...你如何清除UIImageView中的动画序列。上面的代码建议解决了我的动画需求。我已经加载了框架在一个NSMutableArray并将它们添加到UImageView。这部分工作得很好。现在我想停止动画(这是一个简单的(imageView.stopanimaiton),但是当我加载一个新的图像数组时,我仍然会将旧图像作为新序列的一部分。可变阵列,并重新初始化阵列,但似乎无法摆脱旧的图像 – 2011-05-29 03:25:23
行..一次不介意:-) 该问题与UIViewImage数组无关......我已经定义了一些全局变量我忘记了重置。另一个提醒我关于最小化全局使用情况... – 2011-05-29 11:54:25
值0到255如何映射到颜色?这是一种直接的灰度类型的事情,还是你有一系列色调? – Tommy 2011-05-27 11:18:47
汤米..这将是一个简单的灰色阴影图像,希望显示一个正弦波。 – 2011-05-27 12:01:39