前(さき)に,表題のようなプログラムを作ったことを書きました。長方形であるべき画像が台形になっていたり,辺が曲がっていたりするとき,本来の長方形になるよう修正するプログラムです。長方形となるべき領域の4頂点と,各辺(曲がっている)の中央部に赤い点で印をつけておくと,4頂点が水平にされ,各辺の印の部分が頂点間の中央になるように修正されます。
これまで,画像中の内側に印をつけていましたが,今回,いくつかの点を画像の端部に付けてみました。これを実行したところエラーになってしまいました。「エラーになった」と言っても,「こういう場合はエラーメッセージを出してスキップする」ようプログラムしてあったところです。作成する画像のある点に対応する元の画像の座標が範囲外(画像の大きさより大きいか,負の場所を指した場合)になったとき,エラー処理するようにしていました。1か所でもそのような点があるとエラーメッセージを出して,スキップするようにしていました。今回,元画像の範囲外になったときは,白(R=0xFF, G=0xFF, B=0xFF)を出力するようにして,最後まで処理するようにしました。
出力された画像を見たところ右端の1ピクセルだけが白になっていました(下に出力された画像を拡大して右端だけを見た画像を下に示します。灰色の部分は,そこまでが画像であることを示すために後から付けたものです)。範囲外になったのは右端だけだったのです。今回のエラーは印を端にしなければ起こりませんでしたが,そうした場合でも処理が行われるようになりました。