Kopiowanie Image PictureBox i StretchMode

0

Witam wszystkich.

Mam taki oto problem.
Chcę stworzyć program, który z Image "B" kopiuje zawartość do Image "A", ale tylko w określonych fragmentach.
Gdzie problem?
SizeMode obu PictureBox (Image) jest ustawiony na StretchImage.

Taki kod jak poniżej:

Graphics gg = this.pictureBox1.CreateGraphics();

            gg.DrawImage(this.pictureBox2.Image, 0, 0, this.pictureBox2.Width, 
                this.pictureBox2.Height);

Działą oczywiście jak należy, ale... kopiuje on cały obraz (od 0,0 do końcowych punktów obrazku).
Mi natomiast zależy aby kopiował tylko dany fragment, więc też napisałem coś takiego:

            int procX1 = (e.X)* this.BMP.Width / this.pictureBox2.Width;
            int procX2 = (e.X) * this.BMP.Width / this.pictureBox2.Width;
            int procY1 = (e.Y) * this.BMP.Height / this.pictureBox2.Height;
            int procY2 = (e.Y ) * this.BMP.Height / this.pictureBox2.Height;
            
            Graphics gg = this.pictureBox1.CreateGraphics();

            gg.DrawImage(this.pictureBox2.Image,
                new Rectangle(procX1, procY1, procX2, procY2),
                new Rectangle(procX1, procY1, procX2, procY2), 
                GraphicsUnit.Pixel);

BMP tutaj to bitmapa o rzeczywistych rozmiarach obrazka.

Niestety to kompletnie nie kopiuje poprawnie fragmentu obrazka.

Czy ma ktoś może jakiś pomysł z jakiej funkcji skorzystać? Albo jak to zrobić?
Pamiętajmy, że SizeMode jest ustawione na Stretch.

0
 int procX1 = (e.X)* this.BMP.Width / this.pictureBox2.Width;
            int procX2 = (e.X) * this.BMP.Width / this.pictureBox2.Width;
            int procY1 = (e.Y) * this.BMP.Height / this.pictureBox2.Height;
            int procY2 = (e.Y ) * this.BMP.Height / this.pictureBox2.Height;

procX1 oraz procX2 nie są to aby ze same punkty?

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