我有应用程序,用户可以在其中拖放图像,并且正在重新绘制它以OpenGL
进行一些可行的处理。一切正常。当用户想要保存他的图像时,它的工作方式如下:
glReadPixels -> NSBitmapImageRep -> NSData -> Write to file
这也有效。几乎。对于某些图像,它无法正常工作。
例如:
.png
当我打开并保存此图像时:
我得到:
如果我打开并保存此图像:
我得到:
.jpg
如果我打开并保存:
我得到:
当我打开并保存时:
我得到:
所以有时图像保存得不好。为什么会这样?
这是我NSBitmapImageRep
的分配方式:
NSBitmapImageRep *imageRep = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:NULL pixelsWide:_image_width pixelsHigh:_image_height bitsPerSample:8 samplesPerPixel:3 hasAlpha:NO isPlanar:NO colorSpaceName:NSDeviceRGBColorSpace bytesPerRow:3 * _image_width bitsPerPixel:0];
并且GL_PACK_ALIGNMENT
没有被编辑。