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