Windows Azure Cloud Storage ermöglicht es Ihnen bereits ab 0,10€ pro GB/Monat die Vorteile der Cloud zu nutzen.
Willkommen bei dotnet-snippets.de! Snippet hinzufügen Login Registrieren
Snippets in der Datenbank: 1550 | Anzahl registrierter User: 1841 | Besucher online: 63
Hauptmenü
Home
Top Ten
Zufälliger Snippet
FAQs
.NET Community
dotnet-forum.de
dotnet-kicks.de
Social

RSS Feeds
Rss Alle Snippets
Rss C#
Rss VB.NET
Rss C++
Rss ASP.NET
Partner
Member of Microsoft Community Leader/Insider Program (CLIP)

Bild von einem Control oder Panel


Autor: BlackDragon
Sprache: C#
Bewertung:
7.46 (3 votes)
Anzahl der Aufrufe: 13783
  
Kick it on dotnet-kicks.de  

Beschreibung:

Mit diesem recht einfachen Snippet kann ein Bild von einem ganzen Panel oder sogar eines einzelnen Controls erzeugt werden

Abgelegt unter: Capture Screen, Capture Control, Bild, Image, BitBlt, Capture, Hardcopy.



C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern long BitBlt(IntPtr hdcDest, int xDest, int yDest, int width, int height, IntPtr hdcSrc, int xSrc, int ySrc, int dwRop);

/// <summary>
/// Erzeugen von einem Image Objekt von dem übergebenen Control
/// </summary>
/// <param name="ctrl">Das Control von dem ein Bild erzeugt werden soll</param>
/// <returns>Ein Image Object mit dem Bild des Controls</returns>
public Image CaptureCtrl(Control  ctrl) {
	Graphics g = this.CreateGraphics();

	// Ein neues Image mit der grösse des jeweiligen Controls anlegen
	Image newImage = new Bitmap(ctrl.Size.Width, ctrl.Size.Height, g);

	Graphics memoryGraphics = Graphics.FromImage(newImage);
	//Handle holen
	IntPtr src = g.GetHdc();
	IntPtr dest = memoryGraphics.GetHdc();

	// das Handle des Ziels
	// die X Position an der das Bild eingefügt werden soll
	// die Y Position an der das Bild eingefügt werden soll
	// die breite des Bildes
	// die höhe des Bildes
	// das Handle der Quelle
	// die X Position an der das Control liegt
	// die Y Position an der das Control liegt
	// Raster Operation Code an dieser Stelle ist es SRCCOPY
	// Natürlich muß der auf der Seite angegebene Hex wert noch in ein int umgerechnet werden
	// mehr informationen auf http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wceui40/html/_celrfternaryrasteroperations.asp
	BitBlt(dest, 0, 0, ctrl.ClientRectangle.Width, ctrl.ClientRectangle.Height, src, ctrl.Location.X, ctrl.Location.Y, 13369376);

	// Handles wieder Freigeben
	g.ReleaseHdc(dest);
	memoryGraphics.ReleaseHdc(src);


	return newImage;
}
Sie haben Fragen zu diesem Snippet oder brauchen Hilfe bei der .NET Entwicklung?
Freundliche und kompetente Entwickler helfen Ihnen gern weiter im Forum für .NET Entwicklung.



Kommentare:
(Zum Schreiben von Kommentaren bitte anmelden.)



Diese Snippets könnten für Sie interessant sein:
[VB.NET] Bildgröße verändern (Verhältnis)
[VB.NET] Bildgröße verändern (Prozentual)
[VB.NET] Bildgröße verändern (Manuell)
[VB.NET] Neues Größenverhältnis eines Bilds berechnen
[VB.NET] JPEG Bild komprimieren
[VB.NET] Bild Transparent machen mit ColorMatrix
[VB.NET] Farben eines Bilds umkehren
[VB.NET] Bild in Graustufen umwandeln
[C#] GDI+ und das Paint Event
[C#] Bild anzeigen - Datei schließen
[VB.NET] Text auf Bild zeichnen
[C#] Größe verändern von Bildern
[ASP.net] Datei nach Bildupload prüfen
[C#] GetEuclidicDistance
[VB.NET] Bitmap Differenz Analyse
[VB.NET] Verschlüsslung von Dateien mit Vernam
[C#] Bild drehen (nach Winkelangabe)
[C#] Bildgröße im Verhältnis verändern (Interpoliert)
[VB.NET] Bildausschnitt auslesen
[VB.NET] Bildgröße im Verhältnis verändern (Interpoliert)
[VB.NET] Bildgröße prozentual verändern (Interpoliert)
[VB.NET] Bildgröße in beiden Dimensionen verändern (Interpoliert)
[VB.NET] Alle Pixel einer bestimmten Farbe neu einfärben
[C#] Bild steht auf reflektierendem Grund
[C#] Bilder verkleinern, beschneiden und beides gleichzeitig
[C#] Bild splitten
[VB.NET] Bytearray to Image / Image to Bytearray
[C#] Text2Bitmap (String in Bild umwandeln)
[C#] Hintergrundfarbe Transparenter Bilder (z.B. PNG) ändern
[C#] Größe eines Bildes mit mit gleichem Seitenverhältniss ändern
[C#] externes Programm aufrufen (andere Version) mit Parameter
[C#] Herausfinden welches Programm ein bestimmtes Dokument öffnet
[C#] Bitmap schneller in Graustufen wandeln
[C#] Bilder aus *.resx Ressourcen Dateien in WPF verwenden
[VB.NET] Bild mit allen farben (True Color 16 Millionen Farben)
[C#] Schwarzweiß Bilder mit einem Farbverlauf füllen
[C#] Bild rotieren mit C#
[VB.NET] Invert Colors from Image
[VB.NET] Resize image to fit in picturebox
[C#] Bild beim Zeichnen invertieren
[C#] Square Thumbnail generieren
[C#] Change PixelFormat
[VB.NET] Durschnittsfarbe eines Bildes ermitteln
[C#] Image in IPictureDisp umwandeln
[C#] Image zu Base64 konvertieren und zurück
[C#] Image in string wandeln und zurück
[C#] base64 codierten String in eine Bitmap umwandeln
[C#] Bitmap in base64 codierten String wandeln
[C#] Image aus URL laden
[C#] WPF: Image aus dem Web in Image-Element anzeigen
[C#] ISO-Abbild von einer CD/DVD erstellen
[VB.NET] Let your image glow - Bild glühen lassen
[C#] old Windows Forms Image to new WPF Image
[C#] SystemIconsImageListWrapper
[C#] Form-Überschrift zentrieren
[C#] Screenshot eines Controls oder einer Form

schlecht sehr gut
1 2 3 4 5 6 7 8 9 10
Nur angemeldete User können Snippets bewerten.