間違っています。ユーザーが描画を終了すると、テクスチャはSOILを使用してjpgに保存されます。画像が正しく表示されます。画像を反転した後に出力が正しく配置されていますが、画像が小さいサイズに拡大されます(高解像度のデバイスでは、より小さい画像が生成されます)。OpenGLは私がにiOS用の描画アプリケーションの一部として、OpenGLを使用しています
私は、次の午前プロセスは、次のとおりです。
unsigned char *pixels = (unsigned char*)malloc(4* imgwidth* imgheight);
glBindTexture(GL_TEXTURE_2D, 0);
glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, imgwidth, imgheight);
glPixelStorei (GL_UNPACK_ALIGNMENT, 1);
glPixelStorei (GL_UNPACK_SKIP_ROWS, 1);
glPixelStorei (GL_UNPACK_SKIP_PIXELS, 1);
glReadPixels(0, 0, imgwidth, imgheight, GL_RGBA, GL_UNSIGNED_BYTE, (GLvoid *) pixels);
invertPixels(pixels);
int result;
result = SOIL_save_image_quality(imagepath, SOIL_SAVE_TYPE_JPG, d, imgheight, 4, pixel_data, 99);
delete [] pixel;
私は、画像のサイズが同じであるが、逆さまにそれなしで、死への反転アルゴリズムを分析し、そのは、その仕事をして確信しています。これを引き起こす原因は何ですか?私はテクスチャを再スケーリングする必要がありますか?
ありがとうございます。あなたの記事は私が問題に近づくのに役立ちましたが、コンテンツの倍率だけを調整することは私の解決策ではありません。 contentScalingFactorを大きくすると、イメージのサイズは予想通り近くになりますが、これも中心から外れていることがわかりました。(0,0、w、h)はイメージの左下をカットしています。投稿(https://stackoverflow.com/questions/9155515/glreadpixels-only-saves-1-4-screen-size-snapshots)は、私が経験しているものよりも多いかもしれません。私はObj-CではなくC++で作業しており、SOILはフレームバッファタイプを符号なしバイトから変更するのを防ぎます。 – Randoramma
簡単な質問:オリジナルコンテンツのスケーリング1.0はありましたか? – beshio
いいえ、デバイスタイプに基づいてEAGLコンテキストによって自動的に設定されました。 – Randoramma