Laden...

Pixelformat aus Integerwert

Erstellt von digi333 vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.379 Views
D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 17 Jahren
Pixelformat aus Integerwert
Bitmap bmp = new Bitmap(frameWidth, frameHeight, PixelFormat.Format8bppIndexed);
                            for (int x = 0; x < frameWidth; x++)
                            {
                                for (int y = 0; y < frameHeight; y++)
                                {
                                    bmp.SetPixel(x, y, Color.FromArgb(frame.GetY(x, y)));
                                }
                            }

Das ist mein momentanes Problem. "bmp" ist ein 8 Bit/Pixel Format und bei Setpixel steht bei Farbe (FromArgb) ein 32bit-Wert. Die Variable "frame.GetY" ist ein Wert zwischen 0...255. Vielleicht ist es ja so richtig, jedoch steigt mir das Programm an der Stelle aus. Wie kann ich in dem angegebenen Pixelformat eine Farbe deklarieren die in dem angegebenen Intergerraum liegt (0...255)? Ich bin leider Anfänger X(

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 17 Jahren

Aber das Pixelformat darf nicht verändert werden! Als Zusatz.

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 17 Jahren
Verbesserung

Ich bin schon seit Ewigkeiten im Internet am suchen, aber nirgens eine Antwort.


Bitmap bmp = new Bitmap(frameWidth, frameHeight, PixelFormat.Format24bppRgb);
    for (int x = 0; x < frameWidth; 
   {
         for (int y = 0; y < frameHeight; y++)
        {
            bmp.SetPixel(x, y, Color.FromArgb(frame.GetY(x, y), frame.GetY(x, y), frame.GetY(x, y)));
         }

Nagut, aber wie mach man aus dem "PixelFormat.Format24bppRGB" ein "PixelFormat.Format8bppIndexed". Die Frage wird leider öfters mal gestellt, aber immer ohne Antwort.

Wie gesagt, die Variable "frame.GetY" ist der Grauwert des Bildes den ich im Grunde pixelweise als neues Bild "bmp" speichern möchte mit 8bpp.

1.549 Beiträge seit 2004
vor 17 Jahren

hilft dir vieleicht Convert.ToByte(); weiter?

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

D
digi333 Themenstarter:in
290 Beiträge seit 2006
vor 17 Jahren

An welche Stelle würdest du es setzen wollen?

1.549 Beiträge seit 2004
vor 17 Jahren

von deinem Int auf den Byte den du für das 8 Bit/Pixel Format Brauchst.

bzw. Beim ändern des 24 in den 8 Bit Type. dabei kannst du wenn es keine Metode gibt einfach alle eigenschaften übertragen und die ints in Bytes ändern Fertig

Wir Arbeiten eigendlich nicht wir nehmen nur das geld