OpenEXR ライブラリを使用してイメージをロードしています。
これは正常に機能しますが、画像が 180 度回転して読み込まれます。以下に示すループを使用して配列を逆にしますが、プログラムが終了し、xcode で EXEC_BAD_ACCESS エラーが発生することがあります (これは msvc のアクセス違反と同じだと思います) 。毎回ではなく、5~10回に1回程度です。
理想的には、配列を逆にしたいのですが、それは毎回エラーにつながり、memcpy の使用は失敗しますが、エラーは発生せず、空白の画像になります。まず、この問題の原因を知りたいです。
ここに私が使用しているコードがあります: (Rgba は、OpenEXR で定義された 4 つの「半分」の sr、g、b、および a の構造体です)
Rgba* readRgba(const char filename[], int& width, int& height){
Rgba* pixelBuffer = new Rgba[width * height];
Rgba* temp = new Rgba[width * height];
// ....EXR Loading code....
// TODO: *Sometimes* the following code results in a bad memory access error. No idea why.
// Flip the image to conform with OpenGL coordinates.
for (int i = 0; i < height; i++){
for(int j = 0; j < width; j++){
temp[(i*width)+j] = pixelBuffer[(width*height)-(i*width)+j];
}
}
delete pixelBuffer;
return temp;
}
前もって感謝します!