Alpha te mengen, bitmap

, Delphi, AlphaBlend functie Alpha mengen is gebruikt om blijk te geven van een bitmap Alpha, dit is een beetje een transparante of lichtdoorlatende pixels,,.,, met uitzondering van rood, groen, blauw de kleur van elke pixel in het kanaal, de transparantie, α bitmap - bekend als het Kanaal alfa.Het Kanaal ALFA bevat normaliter een beetje als de kleur van het Kanaal.Bijvoorbeeld, een 8 - kanaal ALFA kan namens de 256 transparante niveau van 0 (de hele bitmap transparant) 255 (de hele bitmap ondoorzichtig is).Alpha gemengd mechanisme is door een beroep te doen op de AlphaBlend functie.De functie van de AlphaBlend een transparante of lichtdoorlatende pixel bitmap.Het is niet voor Microsoft Windows 95 of Microsoft Windows versie van Microsoft Windows 2000. De volgende code voorbeeld een raam is verdeeld in drie regio 's.Dan kan ik een alfa - mengen met bitmap bij elk raam.,,, totaal, ac_src_alpha = 1 USD;,,, drawalphablend (specifieke programma 's:.; hdcwnd:HDC);,, var, ahdc:HDC; ///////verwerking van dc we zullen creëren, BF:blendfunction; ///////- gemengde structuur, ahbitmap:HBITMAP; ///////bitmap aan.,, BMI:BITMAPINFO; ///////pvbits: aanwijzing van het hoofd,.,; ///////ulwindowwidth DIB aanwijzing,,,,, ulwindowheight: blz.; ////////de hoge bandbreedte,,,, ulbitmapwidth, ulbitmapheight: blz.; ////////hoogte van de breedte.; ///////RT:,, voor het verwerven van de omvang van de te ramen,,, de omvang van het raam, ///////, getclientrect (specifieke, RT);,,, //- berekening vanE - bandbreedte, ulwindowwidth:= /hoge, rt.right - rt.left;,, ulwindowheight:= rt.bottom - rt.top;,,, laten we ten minste een raam, als ((ulwindowwidth = 0) en (ulwindowheight = 0)) en,,,,, verlaten; /raam 3 horizontale gebieden, ulwindowheight:= trunc (ulwindowheight /3);,,, ///////- het creëren van een bron in Washington DC. Wij, ahdc AlphaBlend: = CreateCompatibleDC (hdcwnd);,,, //- opslag in de kaart informatie, zeromemory (@ BMI, groot (BITMAPINFO);,,, ///////bitmap informatie, bmi.bmiheader.bisize:= groot (BMP - informatie hoofd van de structuur);,,, bmi.bmiheader.biwidth:= trunc (ulwindowwidth - (ulwindowwidth /5), ulbi * 2); enTmapwidth:= trunc (ulwindowwidth - (ulwindowwidth /5) * 2);,, bmi.bmiheader.biheight:= trunc (ulwindowheight - (ulwindowheight /5) * 2);,, ulbitmapheight:= trunc (ulwindowheight - (ulwindowheight /5) * 2); bmi.bmiheader.biplanes:= 1;,,,, bmi.bmiheader.bibitcount:= 32; ///////bmi.bmiheader.bicompression:= bi_rgb vier onderdelen. Ulbitmapwidth * * * * * * * bmi.bmiheader.bisizeimage:=;,,,,, ulbitmapheight * 4; ///////het creëren van DIB, keuze van dc,, ahbitmap:= kan CreateDIBSection (ahdc, bmi, dib_rgb_colors, pvbits, 0, 0); (ahdc,,, je ahbitmap);,,, bf.blendop:= ac_src_over;,,,,, bf.sourceconstantalpha:= bf.blendflags:= 0; 7. De helft van de transparantie 0xff = 50% ///////BF.Alphaformat:= 0; ///////kanaal alfa, aan de bron, en (hdcwnd AlphaBlend, trunc (ulwindowwidth /5), trunc (ulwindowheight /5),,,,, ulbitmapwidth, ulbitmapheight, ahdc, 0, 0, ulbitmapwidth, ulbitmapheight, BF);,,,,,, bf.blendop:= ac_src_over; bf.blendflags:= 0;,, bf.alphaformat:= ac_src_alpha; ///////gebruik van de bron α, bf.sourceconstantalpha:= $FF; ///////ondoorzichtige (het constante α),,, (hdcwnd AlphaBlend, trunc (ulwindowwidth /5),,, trunc (ulwindowheight /5 + ulwindowheight), ulbitmapwidth, ulbitmapheight,,, ahdc, 0, 0, ulbitmapwidth, ulbitmapheight, BF) bf.blendop:= ac_src_over;,,,,,,,, bf.alphaformat:= bf.blendflags:= 0, 0, bf.sourceconstantalp;,HA = $3;,,, (hdcwnd AlphaBlend, trunc (ulwindowwidth /5),,, trunc (ulwindowheight /5 + 2 * * * * * * * ulwindowheight), ulbitmapwidth,,, ulbitmapheight, ahdc, 0, 0, ulbitmapwidth ulbitmapheight,,,,,,, ///////BF); goedkeuring van het voorwerp te doen, (ahbitmap);,, of te schrappen (ahdc);,,,,,,, te beëindigen;



Previous:
Next Page: