我有應用程序,其中用戶拖放圖像,並且正在使用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