Entwickler-Ecke
Multimedia / Grafik - DrawImage Teil eines Bildes kopieren
omvo02 - So 02.11.08 02:30
Titel: DrawImage Teil eines Bildes kopieren
Hallo,
wie kopiert man mit DrawImage einen Teil eines Bitmaps in ein anderes Bitmap?
Das andere Bitmap soll dann nur diesen Ausschnitt (Teil) enthalten.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Bitmap CopyPart(Bitmap Quelle, Rectangle Teil) { Bitmap Ziel = new Bitmap(Teil.Width, Teil.Height); Graphics g = Graphics.FromImage(Quelle);
g.DrawImage(Quelle, ?); ... } |
Vielen Dank!
omvo02
Moderiert von
Kha: C#-Tags hinzugefügt
Kha - So 02.11.08 11:31
Versuch es einmal mit diesem Overload:
Zitat: |
C#-Quelltext 1: 2: 3: 4: 5: 6: 7:
| public void DrawImage( Image image, int x, int y, Rectangle srcRect, GraphicsUnit srcUnit ) |
Parameter
image
Typ: System.Drawing..::.Image
Das zu zeichnende Image.
x
Typ: System..::.Int32
Die x-Koordinate der oberen linken Ecke des gezeichneten Bilds.
y
Typ: System..::.Int32
Die y-Koordinate der oberen linken Ecke des gezeichneten Bilds.
srcRect
Typ: System.Drawing..::.Rectangle
Rectangle-Struktur, die den zu zeichnenden Teil des image-Objekts angibt.
srcUnit
Typ: System.Drawing..::.GraphicsUnit
Member der GraphicsUnit-Enumeration, der die Maßeinheiten für den srcRect-Parameter angibt.
|
Also erst die Zielkoordinaten, dann das Quellrechteck.
omvo02 - So 02.11.08 15:52
danke für deine Antwort, Kha.
Gibt es irgendeine Möglichkeit die GraphicsUnit.Pixel-Angabe, die bei diesem Aufruf erforderlich ist, zu umgehen? Gibt es eine Möglichkeit eine eigene GraphicsUnit zu erstellen, die der Pixelgröße meines *.jpg entspricht?
Sobald ich DrawImage so benutze, dass ich GraphicsUnit angeben muss, bekomme ich nicht den ganzen Ausschnitt (dies habe ich in meinem Post
"Bildverkleinern Originalkoordinaten" [
http://www.c-sharp-forum.de/topic_Bildverkleinern+Originalkoordinaten_87384.html] beschrieben)?
Danke auch, dass du dir die Mühe gemacht hast, den Quellcode in meinem Post in einen Code-Block zu setzen, hatte leider ich vergessen.
omvo02 - So 02.11.08 16:12
Also ich bin inzwischen bei diesem Problem etwas weiter gekommen.
Man muss die Auflösung des Quell-Bitmaps auf die Auflösung des Graphics-Objektes setzen:
C#-Quelltext
1:
| Quelle.SetResolution(g.DpiX, g.DpiY); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!