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.