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
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! :)
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.