1

私はかなり長い間 Google を見回してきましたが、問題の解決策が見つからないようです。

問題は、ビットマップをパネルにペイントすることです。何らかの奇妙な理由で、ビットマップ全体がパネルの左上に向かってオフセットしているように見えます。これにより、マップを作成するときに混乱します。追加のメモとして、ビットマップはそれ自体よりも大きなパネルにペイントされていました。(例: bitmap.dimensions == 64x64 および panel.dimensions == 512x512)。

    private void redrawCityPanel()
    {
        Image cityImage = this.cityBitmap;

        Graphics panel_CityGraphics = this.panel_City.CreateGraphics();
        panel_CityGraphics.Clear(this.panel_City.BackColor);
        panel_CityGraphics.InterpolationMode = InterpolationMode.NearestNeighbor;
        panel_CityGraphics.DrawImage(cityImage, panel_City.DisplayRectangle);
    }

混乱して申し訳ありません。画像を投稿したいのですが、十分なポイントを獲得できませんでした。

4

1 に答える 1

4

私がする必要があったのは、ピクセル オフセット モードを設定することだけでした。

private void redrawCityPanel()
{
    Image cityImage = this.cityBitmap;

    Graphics panel_CityGraphics = this.panel_City.CreateGraphics();
    panel_CityGraphics.Clear(this.panel_City.BackColor);
    panel_CityGraphics.InterpolationMode = InterpolationMode.NearestNeighbor;

    panel_CityGraphics.PixelOffsetMode = PixelOffsetMode.Half; //Added

    panel_CityGraphics.DrawImage(cityImage, panel_City.DisplayRectangle);
}
于 2012-04-19T21:45:15.483 に答える