SNES GFX ファイルを Java で編集するプログラムを作成しています。バイト配列を に描画し、BufferedImage
それを画面に描画して、データを画面に描画しています。問題は、画像を編集できるようにしたいということです。毎回画像全体を再描画したくないのでBufferedImage.createGraphics()
、データを同時に更新しながら画面に描画していましたbyte[]
。
次のように、カスタム データ配列で更新する必要があるピクセルを手動で再作成できるため、四角形を描画するときは非常に簡単です。
for (int i = rect.x; i < rect.x + rect.width + 1; i++) {
for (int j = rect.y; j < rect.y + rect.height + 1; j++) {
panel.setPixelColor(new Point(i, j), palette.getCurrentColor());
}
}
しかし、楕円を描くにはどうしたらいいのか途方に暮れています。だけを使用できるようにしたいGraphics.drawOval()
のですが、更新する必要がある値を見つけるために、変更されたピクセルをループする方法があるかどうかはわかりません。もちろん、カスタムの楕円描画アルゴリズムを使用することもできますが、車輪を再発明する必要がないのは本当に素晴らしいことです。