C # winforms: graphics.DrawImage-Problem

8

Ich habe ein wirklich seltsames Problem mit der Graphics.DrawImage Methode.

Ich habe das PictureBox-Steuerelement im Panel-Steuerelement mit AllowScroll property = true . Das Programm schneidet das Bild auf kleinen Teilen basierend auf dem vom Benutzer ausgewählten Bereich.

Ich lade das Bild 300x547 und wähle den Bereich (das rote Rechteck):

Alternativtext http://img341.imageshack.us/img341/8796/63796391.png

Programm schneidet das Bild richtig:

alt text http://img689.imageshack.us/img689/6459/69242903.png

dann lade ich ein anderes Bild 427x640:

Alternativtext http://img34.imageshack.us/img34/7950/56727000.png

und dann, als Ergebnis sehe ich, dass das Bild nicht richtig geschnitten wird. Jede Datei img.jpg hat die richtige Breite & amp; Höhe, aber das gezeichnete Bild ist zu klein: alt text http://img641.imageshack.us/img641/1977/25643796.png

Hier ist das Code-Snippet - es speichert den vom Benutzer ausgewählten Bitmap-Bereich:

%Vor%

Wie Sie sehen, ist der Code für das Bild img1.jpg von Bild A und Bild B identisch. Ich versuche dieses dumme Problem zu lange zu lösen, ich weiß nicht, was der Grund für dieses Problem ist. Ich habe verschiedene Überladungen der DrawImage-Methode versucht, ohne Erfolg

BEARBEITEN

Gelöst! der Dafault-DPI-Wert von System.Drawing.Bitmap ist = 96, wenn ich ein Bild mit DPI öffne! = 96, dann tritt das oben beschriebene Problem auf. Um es loszuwerden, musste ich die Methode SetResolution verwenden:

%Vor%

das löst das Problem :) Danke für alle Hilfe! :)

    
Tony 21.04.2010, 09:48
quelle

1 Antwort

3

Ich würde versuchen: (bearbeitet)

%Vor%

um zu sehen, ob es einen Unterschied macht.

Obwohl es nichts mit Ihrem Problem zu tun hat: Sie vergessen, einige Dinge zu dispose (), und ich bin mir nicht sicher, warum Sie .Clone () das Bild.

    
Dan Byström 21.04.2010 10:28
quelle

Tags und Links