Obrazek do PictureBox ładuje się pomniejszony

0

Witam,
Piszę mały moduł do ładowania i przesuwania mapy. Jednak zauważyłem, że po załadowaniu mapa znacznie zmniejsza swój rozmiar, co widać na rysunku: http://img813.imageshack.us/i/porownanie.png/
Co ciekawe, kiedy sprawdzam wartości Width i height załadowanego obrazu, okazuje się, że zgadzają się z oryginałem. SizeMode kontrolki pictureBox ustawione jest na normal, ale to nie ma znaczenia, bo widzę, że mapa ładuje się większa niż ten picturebox, i można ją przesuwać, oglądać niewidoczne przy pierwszym załadowaniu miejsca, jednak nie jest ona oryginalnych rozmiarów.

Kod ładujący mape wygląda następująco:

   private void button8_Click(object sender, EventArgs e)
        {
plikMapy = @"G:\Moj_folder\Moje dokumenty\Visual Studio 2010\Projects\mapy\mapa2.jpg";
            if (System.IO.File.Exists(plikMapy) != true)
            {
                MessageBox.Show("Nie ma pliku z mapą?");
                return;
            }

            if (bmp != null)
            {
               bmp.Dispose();
            }

            bmp = new Bitmap(plikMapy);
           }
private void mapaPictureBox_Paint(object sender, PaintEventArgs e)
        {
            if (bmp == null) return;
            Graphics g = e.Graphics;

            g.Clear(Form1.DefaultBackColor);

            g.DrawImage(bmp, translateX + mapaPictureBox.Width / 2, translateY + mapaPictureBox.Height / 2);
            
        }

dla czego więc mapa jest mniejsza niż powinna być? z góry dziękuję za pomoc
Pozdrawiam

0

"g.DrawImage(bmp, translateX + mapaPictureBox.Width / 2, translateY + mapaPictureBox.Height / 2);"
Co to robi? rysuje bmp gdzie lewy górny róg ustalony jest przez: translateX + mapaPictureBox.Width / 2, translateY + mapaPictureBox.Height / 2
Więc nie pomyliło ci się coś? Rozumiem że chciałeś ją przeskalować, ale rysować od (0,0), a nie narysować w oryginalnym rozmiarze, ale przesuniętą?

0
 
g.DrawImage(bmp, translateX + mapaPictureBox.Width / 2, translateY + mapaPictureBox.Height / 2);

?

edit:
hehe ale mazgrolilem zeby odp.

0

ok, problem rozwiązałem zmieniając linijkę na:

g.DrawImage(bmp, translateX + mapaPictureBox.Width / 2, translateY + mapaPictureBox.Height / 2, rozmiarX, rozmiarY);

1 użytkowników online, w tym zalogowanych: 0, gości: 1