我正在学习iOS编程。
我必须处理图像。
我必须将图像制作成 BMP 文件。但iOS不支持制作BMP文件。
所以我想也许我可以使用一个指针来制作 BMP 文件。
我为 BMP 制作了一个标题。并将其放入NSData
对象中。
现在我把图像数据保存到那个了NSData
。(我会说bmpData)
这里开始我的疑惑。
我必须有尺寸为 128 x 64 的图像。
我UIImage
从上下文中得到。(我会说image1)
我做了一个CGSize
128 x 64的。
我使用该尺寸制作了一个 context2,绘制了一个 image1
现在我UIImage
从一个大小为 128 x 64、调整大小的 image1 的 context2 中得到了。
我制作了一个UIImageView
并使用了image2,它工作正常。好的。image2 做得很好。
所以我声明了一个指针,它是 unsigned char *。
unsigned char *bmpDataPointer = (unsigned char *)image2;
我用for循环
for(int i = 0; i < 64; ++i)
{
for(int j = 0 ; j < 128; ++j)
{
// dataObj and bmpData are different NSData object
// dataObj just contain bitmap data to check my pointer works fine or not.
[dataObj appendBytes:&(bitmapDataPointer[i*1 + j]) length:sizeof(char)];
}
}
我做了一个UIImage
检查数据是否有效,它失败了。
UIImage *createdImageUsedByaPointer = [UIImage imageWithData:dataObj];
if(createdImageUsedByaPointer == nil)
{
NSLog(@"nil!");
}
好的运行。然后将显示字符串 nil。
这是为什么?我使上下文大小为 128 x 64,所以我循环 128 x 64 次。
但效果不好。
我该如何解决?
我如何处理UIImage
使用指针?
任何人都知道,请帮助我。