Einzelnen Beitrag anzeigen

schwarzerlotus

Registriert seit: 25. Jul 2011
22 Beiträge
 
#5

AW: 8 Bit Grauwert Bild speichern

  Alt 3. Apr 2012, 15:15
*grummel*

hab Geister gesucht. Wenn ich die Zuweisung der Palette nach oben verschiebe über die Zuweisung der Werte funktioniert alles

Delphi-Quellcode:
  var
    rowGrey: PByte;
    rowRGB: ^TRGBTriple;
    GrayPal:TMaxLogPalette;
    PaletteSize: integer;

...

    image := TBitmap.Create;
    image.PixelFormat := pf8bit;
    image.Width := image1.Picture.Width;
    image.Height := image1.Picture.Height;

      GrayPal.palVersion := $0300;
      GrayPal.palNumEntries := 256;

      for i := 0 to 255 do
      begin
        GrayPal.palPalEntry[i].peRed := i;
        GrayPal.palPalEntry[i].peGreen := i;
        GrayPal.palPalEntry[i].peBlue := i;
        GrayPal.palPalEntry[i].peFlags := PC_NOCOLLAPSE;
      end;

      image.Palette := CreatePalette(PLogPalette(@Graypal)^);

    for j := 0 to image1.Picture.Height-1 do begin

        rowGrey := image.ScanLine[j];
        rowRGB := image1.Picture.Bitmap.Scanline[j];

        for i := 0 to image1.Picture.Width-1 do begin
          rowGrey^ := min(round(rowRGB^.rgbtRed), 255);

          inc (rowGrey);
          inc (rowRGB);
        end;
      end;
ImageJ zeigt mir nun auch grayscale LUT und nicht mehr color LUT. Warum eine spätere Zuweisung einer LookUpTable die eigentlichen Werte im TBitmap verändert ist mir noch nicht so ganz klar und warum es dafür keine Funktion zu geben scheint auch nich aber nun ja tut nun

danke an alle
  Mit Zitat antworten Zitat