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: 1551 | Anzahl registrierter User: 1841 | Besucher online: 2
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)

Bitmap schneller in Graustufen wandeln


Autor: M1C
Sprache: C#
Bewertung:
noch nicht bewertet
Anzahl der Aufrufe: 5622
  
Kick it on dotnet-kicks.de  

Beschreibung:

Diese Funktion wandelt ein Bitmap in Graustufen um.
Allerdings schneller als http://dotnet-snippets.de/dns/bitmap-in-graustufen--wandeln-SID70.aspx


danke an herbivore


Abgelegt unter: Bitmap, Bild, image, SW, Graustufen, Schwarzweiss, Schwarz, weiss, umwandeln.



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
private Bitmap BildSW(Bitmap bmp)
{
    int numBytes = bmpData.Stride * bmp.Height;
    byte[] rgbValues = new byte[numBytes];
    int tmpSW;
    
    PixelFormat pxf = PixelFormat.Format24bppRgb;
	
    Rectangle rect = new Rectangle(0, 0, bmp.Width, bmp.Height);
    BitmapData bmpData = bmp.LockBits(rect, ImageLockMode.ReadWrite, pxf);
	
    IntPtr ptr = bmpData.Scan0;
	
    Marshal.Copy(ptr, rgbValues, 0, numBytes);
	
    for(int counter = 0; counter < rgbValues.Length; counter+=3)
    {
        tmpSW  = rgbValues[counter];
        tmpSW += rgbValues[counter+1];
        tmpSW += rgbValues[counter+2];
        
    	tmpSW /= 3;
    	
    	rgbValues[counter] = rgbValues[counter+1] = rgbValues[counter+2] = Convert.ToByte(tmpSW);
    }
    
    Marshal.Copy(rgbValues, 0, ptr, numBytes);
	
    bmp.UnlockBits(bmpData);

    return bmp;
}
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.)

Timo Boehme schrieb am:  10.06.2010 17:52:59

Das müsste noch schneller gehen mit der ColorMatrix von DotNet.


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)
[C#] Bild beim Zeichnen invertieren
[C#] Floyd Steinberg Dithering
[C#] Bitmap in Graustufen wandeln
[C#] Größe verändern von Bildern
[C#] Square Thumbnail generieren
[VB.NET] Bitmap Differenz Analyse
[C#] Bild drehen (nach Winkelangabe)
[C#] Image in string wandeln und zurück
[VB.NET] Bitmap Header auslesen (File & Info)
[C#] base64 codierten String in eine Bitmap umwandeln
[C#] Bitmap in base64 codierten String wandeln
[C#] Bitmap in Icon konvertieren
[C#] Bilder verkleinern, beschneiden und beides gleichzeitig
[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#] ExtractAssociatedIcon
[C#] Bilder aus *.resx Ressourcen Dateien in WPF verwenden
[VB.NET] Let your image glow - Bild glühen lassen
[C#] Custom Cursor
[C#] Bild rotieren mit C#
[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
[ASP.net] Datei nach Bildupload prüfen
[C#] GetEuclidicDistance
[VB.NET] Verschlüsslung von Dateien mit Vernam
[C#] Bildgröße im Verhältnis verändern (Interpoliert)
[C#] Bild von einem Control oder Panel
[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#] Bild splitten
[VB.NET] Bytearray to Image / Image to Bytearray
[C#] externes Programm aufrufen (andere Version) mit Parameter
[C#] Herausfinden welches Programm ein bestimmtes Dokument öffnet
[VB.NET] Bild mit allen farben (True Color 16 Millionen Farben)
[C#] Schwarzweiß Bilder mit einem Farbverlauf füllen
[VB.NET] Invert Colors from Image
[VB.NET] Resize image to fit in picturebox
[C#] Change PixelFormat
[VB.NET] Durschnittsfarbe eines Bildes ermitteln
[C#] Image in IPictureDisp umwandeln
[C#] Image zu Base64 konvertieren und zurück
[C#] Image aus URL laden
[C#] WPF: Image aus dem Web in Image-Element anzeigen
[C#] ISO-Abbild von einer CD/DVD erstellen
[C#] old Windows Forms Image to new WPF Image
[C#] SystemIconsImageListWrapper
[C#] Wandelt ein Bytearray in einen Binärstring
[VB.NET] Original UNC Pfad eines Netzlaufwerkes ermitteln
[VB.NET] String in Byte Array und zurück wandeln
[VB.NET] Listen, Arrays, Strings konvertieren
[C#] Double in String umwandeln (mit InvariantCulture)
[C#] String in Double umwandeln (mit InvariantCulture)
[C#] Dezimal in Binär umwandeln
[C#] String zu MD5
[C#] Römische Zahlen

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