Guten Morgen zusammen,
ich hole mir ein Bildausschnitt aus einem Image und zoome den Clip. Das funktioniert soweit super, auch ohne Qualitätsverluste, jedoch nur wenn ich den Clip direkt in einem Panel zeichne mit: CreateGraphics(). Daraus ergibt sich dann die Einschränkung, das kein Control über die Zeichnung bewegt werden darf, da diese nicht neu gezeichnet wird. Genau das muss aber möglich sein, ohne wenn und aber. Also muss ein neues Bitmap her, hier hapert es allerdings.
Das funktioniert prima:
C#-Quelltext
1: 2: 3: 4:
| using (Graphics g = panel1.CreateGraphics()) { g.DrawImage(bmpClip, 0, 0, userRectangle.Width * scaleFactor, userRectangle.Height * scaleFactor); } |
Wenn ich nun ein neues Bitmap erstelle geht die neue Skalierung verloren, bzw. wird nicht berücksichtigt.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Bitmap newBitmap = new Bitmap(Convert.ToInt32(userRectangle.Width * scaleFactor), Convert.ToInt32(userRectangle.Height * scaleFactor));
using (Graphics g = Graphics.FromImage(newBitmap)) { g.DrawImage(bmpClip, 0, 0, userRectangle.Width * scaleFactor, userRectangle.Height * scaleFactor); } |
Wenn das neue Image mit einer PictureBox betrachtet wird, ist es nicht skaliert. Was läuft den hier falsch?
Über Hinweise und Anregungen freue ich mich wie immer