Autor Beitrag
BennyK
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 14.05.10 03:44 
Grüss euch, möchte eigentlich nur ein Bitmap anzeigen mit graphics.drawimage, wenn ich aber ganz genau hinschaue sehe ich das die Zeilen leicht verschoben sind, hier mal der Code:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
 Bitmap isotest = new Bitmap("c:\\testbild66.bmp");   // Bild ist 64 x 64 pixel

 Rectangle rect4 = new Rectangle(006464);
            System.Drawing.Imaging.BitmapData bmpData5 =
                isotest.LockBits(rect4, System.Drawing.Imaging.ImageLockMode.ReadWrite,
                isotest.PixelFormat);

            // Get the address of the first line.
            IntPtr ptr4 = bmpData5.Scan0;

            // Declare an array to hold the bytes of the bitmap.
            int bytes4 = bmpData5.Stride * 64;

isotest.UnlockBits(bmpData5);


dann wird gezeichnet:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
     Point[] destinationPoints = {
                      
                         new Point(100100),  
                             new Point(164100), 
                            new Point(100164)};

                                    e.Graphics.DrawImage(isotest, 10,10);

Dieses Bild ist aber nun leicht verzogen, fällt nur bei genauerer Betrachtung auf.

Bitte dringend um Hilfe!


Mit freundlichen Grüssen

Benny

Moderiert von user profile iconNarses: C#-Tags hinzugefügt
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1012
Erhaltene Danke: 24

Windows XP
C#, Visual Studio
BeitragVerfasst: Fr 14.05.10 08:16 
Hallo,

würde sagen das liegt an deinem rect4. Wenn das Bild 64*64 groß ist, dann ist der relevante Bereich von 0 - 63 Pixel.

Gruß

PS: Über Bereiche kannst du Code als solchen deklarieren. Dann ist er viel besser lesbar.
BennyK Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 14.05.10 13:12 
Schonmal vielen Dank, meinst du ich soll das rect4 so machen?

ausblenden C#-Quelltext
1:
Rectangle rect4 = new Rectangle(006363);					


Weil das hab ich grad versuch keine Veränderung...



Habe mal zur besseren Verständniss 2 Bilder angehängt um den Fehler zu demonstrieren. Habe sie auch dementsprechend größer gezeichnet für die Demonstration:
ausblenden C#-Quelltext
1:
 e.Graphics.DrawImage(isotest, 10,10,400,400);					


Es scheint so als wäre das Bild nach links oben hin verzogen, teilweise sind die Linien ja nichtmal mehr zu sehen.

Edit: Habe gerade rausgefunden das der Effekt auch auftritt wenn ich ein Bild in eine PictureBox lade als Image über die GUI, gibts da irgendwelche AA effekte oder so die man deaktivieren muss? Ich benutze übrigens Visual Studio 2010


MfG Benny
Einloggen, um Attachments anzusehen!