i’m studying iOS programming.
i have to handling an image.
i must make an image to BMP file. but iOS doesn’t support to make BMP file.
so i think that maybe i use a pointer i can make BMP file.
i make a header for BMP. and put it in an NSData object.
now i left saving image data’s to that NSData.(i’ll say bmpData)
here’s start my wondering.
i have to have image which size is 128 x 64.
i get the UIImage from a context. (i’ll say image1)
and i make a CGSize which is 128 x 64.
i make a context2 using that size, drawing an image1
now i get the UIImage from a context2, which size is 128 x 64, resized image1.
and i make an UIImageView and use image2, it works fine. good. image2 is made well.
so i declared a pointer, which is unsigned char *.
unsigned char *bmpDataPointer = (unsigned char *)image2;
and i use for loop
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)];
}
}
and i make a UIImage to check that data is valid, it fails.
UIImage *createdImageUsedByaPointer = [UIImage imageWithData:dataObj];
if(createdImageUsedByaPointer == nil)
{
NSLog(@"nil!");
}
ok run. then string nil will be presented.
why is that? i make context size 128 x 64, so i loop 128 x 64 times.
but it works bad.
how can i fix that??
how can i handling an UIImage to use a pointer??
anybody knows about that please help me.
Don’t know why you need .bmp format but ImageMagick will handle export.
Use this lib ImageMagick for iOS and the code below.