Übergabe einzelner Farbwerte



  • Ich habe hier folgenden Quellcode vorliegen, der den ARGB Wert eines Pixels übergibt. Ich möchte jedoch, dass der Red, Green und Blue Wert einzeln voneinander ausgegeben werden (in byte Form). Wie mache ich das?

    public Color ScreenshotT()
            {
                // Screenshot machen
                System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(1920, 1200);
                System.Drawing.Graphics gra = System.Drawing.Graphics.FromImage(bmp);
                gra.CopyFromScreen(0, 0, 0, 0, bmp.Size);
                gra.Dispose();
    
                int r = 0;
                int g = 0;
                int b = 0;
    
                // Alle Farben addieren
    
                        r += bmp.GetPixel(10, 10).R;
                        g += bmp.GetPixel(10, 10).G;
                        b += bmp.GetPixel(10, 10).B;
    
                bmp.Dispose();
    
                return Color.FromArgb(Convert.ToByte(r), Convert.ToByte(g), Convert.ToByte(b));
    


  • Da wird nichts uebergeben, hoechstens wird da etwas zurueck gegeben.

    Dein Rueckgabewert ist ein Objekt vom Typ Color, dieses Objekt stellt dir doch deine Werte bereit. Du brauchst diese Werte nur noch nach dem Aufruf der Funktion abfragen.



  • Hmm könntest du mir das bitte Anhand eines Beispielquelltextes genauer erläutern?

    Mfg Bääääääm



  • Bääääääm schrieb:

    Hmm könntest du mir das bitte Anhand eines Beispielquelltextes genauer erläutern?

    Mfg Bääääääm

    public Color ScreenshotT()
            {
                // Screenshot machen
                System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(1920, 1200);
                System.Drawing.Graphics gra = System.Drawing.Graphics.FromImage(bmp);
                gra.CopyFromScreen(0, 0, 0, 0, bmp.Size);
                gra.Dispose();
    
                int r = 0;
                int g = 0;
                int b = 0;
    
                // Alle Farben addieren
    
                        r += bmp.GetPixel(10, 10).R;
                        g += bmp.GetPixel(10, 10).G;
                        b += bmp.GetPixel(10, 10).B;
    
                bmp.Dispose();
    
                return Color.FromArgb(Convert.ToByte(r), Convert.ToByte(g), Convert.ToByte(b));
    }
    
    Color color = ScreenshotT();
    
    // hier dann ueber color.R oder color.G oder color.B die einzelnen werte abfragen.
    // hoffe hab ich richtig verstanden
    


  • Ey vielen Dank, klappt!

    😃


Anmelden zum Antworten