I would like to create a bitmap in memory, set some of the pixel values, then save that image to disk.
So far I have the NSBitmapImageRep:
image = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL
pixelsWide:width
pixelsHigh:height
bitsPerSample:8
samplesPerPixel:4
hasAlpha:YES
isPlanar:NO
colorSpaceName:NSDeviceRGBColorSpace
bytesPerRow:0
bitsPerPixel:0];
Then simply add some pixels like so:
NSColor *color = [NSColor colorWithDeviceRed:1.0
green:1.0
blue:1.0
alpha:1.0];
[image setColor:color
atX:x
y:y];
And eventually save the image (as a tiff, which is not ideal but a good start)
NSData* TIFFData = [image TIFFRepresentation];
[TIFFData writeToFile:@"/temp/image.tiff" atomically:YES];
The image saved from this code is actually empty and only shows a few pixels in the top left corner. I’m not sure where the wheels are coming off, but it seems obvious that I am going out this the wrong way?
I’m not sure what exactly is wrong with your sample, but I would approach the problem like this: