@itsChris: TPNGObject habe ich rausgeschmissen,
@himitsu: ebenso FloodFill,
hier nochmal das Wichtigste aus dem Code:
Delphi-Quellcode:
type
TForm1 = class(TForm)
...
Img: TImage;
...
end;
procedure ConvertToBMP(const FileName: string; var Img: TImage);
var PNG: TPNGImage;
begin
if UpperCase(TPath.GetExtension(FileName))='.PNG' then
begin
PNG := TPNGImage.Create;
try
PNG.LoadFromFile(FileName); // Load the PNG image
Img.Picture.Bitmap.Assign(PNG);
finally
PNG.Free;
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
// bei folgenden Variante wird Pen.Color ignoriert
ConvertToBMP('Aloahe2.png', Img);
// bei dieser Variante klappt Pen.Color
Img.Picture.LoadFromFile('Aloahe2.png');
// das mache ich natürlich nicht hintereinander,
// es steht nur zum Deutlichmachen hier
Img.Canvas.Pen.Color:=clBlack;
Img.Canvas.Pen.Mode:=pmCopy;
Img.Canvas.Pen.Style:=psSolid;
end;
procedure TForm1.ScrMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DrawState:=true;
if DrawStyle= dsPen then Img.Canvas.MoveTo(X,Y);
end;
procedure TForm1.ScrMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if Drawstate then
if DrawStyle=dsPen then Img.Canvas.LineTo(X,Y);
end;