Ich ich dachte wenn von Alpha Kanal geredet wird, ist Transparent.
Intern in der Procedure Sollten natürlich TBItMap verwendet werden bzw. Es soll erst per TCanvasOPBitmap; das Rechteckgezeichnet werden und davor natürlich der Hintergrund, ich hoffe du verstehst wie ich das meine !
TBITMap to PNG?
Die Transparenz eines TBitmap ist immer ein volle Durchsichtigkeit.
Diese wird mittels einer Farbe pro Bitmap oder einer Maske festgelegt.
Mit Alpha Kanälen bei 32bit Bitmaps kannst du eine Semi-Transparenz (Halb-Durchsichtigkeit) erreichen. Dabei kann jedes Pixel eine andere "Durchsichtigkeit" haben.
Das OpBitmap.SetAlpha(Value) ist dabei nur eine Hilfe um den Alphakanal jedes Pixels zu verändern.
Wenn das Bitmap eine Transparenzfarbe gesetzt hat, werden bei dieser Methode nur die Alpha Werte der Transparenzfarben verändert.
Falls nicht, werden die Alphas des ganzen OpBitmap verändert.
Du kannst auch selber bestimmen, welche Pixel wie "semi-transparent" seien sollen. Dazu musst du das OPBitmap in ein Pixelformat:=pf32bit umwandlen und danach auf ein 32Bit Bitmap typecasten:
var Pix: PPixel32;
pix := @TBitmapData32(fLazPic.Bitmap.Data).NativePixels[X,Y];
pix^.Alpha := Value;
Alles klar?
Diese wird mittels einer Farbe pro Bitmap oder einer Maske festgelegt.
Mit Alpha Kanälen bei 32bit Bitmaps kannst du eine Semi-Transparenz (Halb-Durchsichtigkeit) erreichen. Dabei kann jedes Pixel eine andere "Durchsichtigkeit" haben.
Das OpBitmap.SetAlpha(Value) ist dabei nur eine Hilfe um den Alphakanal jedes Pixels zu verändern.
Wenn das Bitmap eine Transparenzfarbe gesetzt hat, werden bei dieser Methode nur die Alpha Werte der Transparenzfarben verändert.
Falls nicht, werden die Alphas des ganzen OpBitmap verändert.
Du kannst auch selber bestimmen, welche Pixel wie "semi-transparent" seien sollen. Dazu musst du das OPBitmap in ein Pixelformat:=pf32bit umwandlen und danach auf ein 32Bit Bitmap typecasten:
var Pix: PPixel32;
pix := @TBitmapData32(fLazPic.Bitmap.Data).NativePixels[X,Y];
pix^.Alpha := Value;
Alles klar?
Zuletzt geändert von theo am Mo 24. Sep 2007, 13:48, insgesamt 1-mal geändert.