ユーザーが画像をドラッグアンドドロップするアプリがあり、実行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
無編集。