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(
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.
hilft dir vieleicht Convert.ToByte(); weiter?
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
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