Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
Delphi XE3 Enterprise
|
AW: Programm Design mit TPNGObject
29. Aug 2012, 15:27
vielleicht hilft Dir das, der Teil in Button1 ist bis auf
SetAlpha(bmp2,0);
realtiv uninteressant ....
Delphi-Quellcode:
type
pRGBQuadArray = ^TRGBQuadArray;
TRGBQuadArray = ARRAY[0..$effffff] OF TRGBQuad;
Procedure SetAlpha(bmp:TBitMap;Alpha:Byte);
var
pscanLine32 : pRGBQuadArray;
i,j:Integer;
begin
Bmp.PixelFormat := pf32Bit;
bmp.HandleType := bmDIB;
bmp.ignorepalette := true;
bmp.alphaformat := afDefined;
for i := 0 to bmp.Height -1 do
begin
pscanLine32 := bmp.Scanline[i];
for j := 0 to bmp.Width -1 do
begin
pscanLine32[j].rgbReserved := Alpha;
pscanLine32[j].rgbBlue := 0;
pscanLine32[j].rgbRed := 0;
pscanLine32[j].rgbGreen := 0;
end;
end;
end;
procedure TForm5.Button1Click(Sender: TObject);
var
Bmp,bmp2: TBitmap;
p : TPNGImage;
begin
Bmp2:=TBitmap.Create;
bmp2.Width := 300;
bmp2.height := 300;
SetAlpha(bmp2,0);
p:=TPNGImage.Create;
try
p.LoadFromFile('C:\Icons\IconCollection\ix_ap_all\48x48\shadow\about.png');
bmp2.Canvas.Draw(20,20,p);
bmp2.Canvas.Draw(50,50,p);
bmp2.Canvas.Draw(150,50,p);
bmp2.Canvas.Draw(50,150,p);
Canvas.Draw(100,100,bmp2);
finally
bmp2.Free;
p.Free;
end;
end;
Thomas Wassermann H₂♂ Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂♂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
|
|
Zitat
|