Einzelnen Beitrag anzeigen

theoneand

Registriert seit: 21. Mär 2013
38 Beiträge
 
Delphi XE8 Professional
 
#5

AW: png icon umfärben

  Alt 6. Mär 2014, 16:04
habs endlich hinbekommen.
Und zwar sind die PNG´s mit 8 bit Farbtiefe.

Hab deshalb versucht die Farbpalette neu zu machen und siehe da, es geht

Falls jemand interesse hat, hier der code:

Code:
procedure TForm1.setpalette;
var
  X, Y, PalCount: Integer;
  Line: Pointer;
  PaletteHandle: HPalette;
  Palette: array[Byte] of TPaletteEntry;
  png1: TPNGObject;
begin
  png1 := TPNGObject.create;
  //png1.LoadFromFile('Quellbild.png');
  try
  png1.LoadFromFile('kacke.png');
    if png1.Header.ColorType = COLOR_PALETTE then
    begin
      PaletteHandle := png1.Palette;
      PalCount := GetPaletteEntries(PaletteHandle, 0, 256, Palette);
      for x := 0 to PalCount-1 do
      begin
        Palette[x].peRed := r;
        Palette[x].peGreen := g;
        Palette[x].peBlue := b;
      end;
      SetPaletteEntries(PaletteHandle, 0, PalCount, Palette);
      png1.Palette := PaletteHandle;
    end;
    png1.SaveToFile('kacke.png');
  finally
    png1.free;
  end;
end;
einfach für r,g und b die gewünschten Werte festlegen und gut ist
  Mit Zitat antworten Zitat