我有应用程序,其中用户拖放图像,并且正在使用OpenGL
重绘一些可处理的应用程序。一切正常。当用户想要保存他的图像时,它的工作原理是这样的:glReadPixels并保存到图像
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
不编辑。
? – genpfault
我还没有编辑GL_PACK_ALIGNMENT,我正在抓取RGB图像 – hockeyman
我在glReadPixels前添加了'glPixelStorei(GL_PACK_ALIGNMENT,3);它没有影响任何东西 – hockeyman