別の「下」の画像の上に透明な画像を表示しています。
この場合、下の (ソリッド) 画像はチェス盤のグリッドで、上の画像はライオン (透明) です。
=
その理由は、通常、どの領域が透明であるかを確認できないため、透明領域をより適切に表示するためです。
問題は、ビットマップのサイズは任意であるため、グリッドもビットマップと同じサイズにする必要があることです。
2000x2000 などのサイズのチェス盤グリッドのより大きなバージョンを作成し、作業しているビットマップのサイズに応じて、グリッドのキャンバスのサイズを変更して一致させることができます。これは理想的ではありません。これは、大きなチェス盤のグリッド ビットマップをアプリケーションに格納することを意味し、サイズを変更することを意味し、アスペクト比などによっては正しい結果が得られない可能性があるためです。
私が感じる正しいアプローチは、チェス盤のグリッドをプログラムで次のようにレンダリングすることです。
procedure RenderGrid(Source: TBitmap; Height, Width: Integer;
Size: Integer; Color1, Color2: TColor);
begin
end;
これにより、グリッドをさまざまなサイズと色でカスタマイズできるようになり、大きなチェス盤グリッド ビットマップを格納してサイズを変更するオーバーヘッドについて心配する必要がなくなります。
ただし、グリッドをビットマップに描画する方法がわかりませんか? 私が考えていたのは、ビットマップの交互の各行をループして、そのように色を付ける必要があるということでしたか? 私はわかりません。
これには、私が苦手な数学と計算が含まれます。グリッドをビットマップにレンダリングする最も効果的な方法を教えていただければ幸いです。