Forum
Grundkurs
»Introduktion
»Snabbguide
»Komponenter
»Händelser
»Strängar
»Räkna med Delphi »Egna
typer
»Selektion
»Iteration
»Menyer
»Funktioner
»Arraystrukturer
Tips & Tricks
»Nya tips
»Blandat
»Databaser
»Filer
»Forms
»Grafik
»Internet
»Komponenter
»Matematik
»Multimedia
»Objekt/ActiveX
»Skrivare
»Strängar
»System
»Mest lästa tips
Artiklar
»Delphi och ADO
»Bygga en DLL
»Skapa en enkel rapport
»Hantera registret
»Enheter, units
»Klassen TCanvas
»Använd LookUp Controls
Nya
tips
Lägg
till tips
Delphilänkar
Gästbok
|
|
Markera en bitmap
|
Kategori: Grafik
Inlagt: 2005-05-19
Läst: 1343
Inlagt av: Staffan Berg
|
Beskrivning |
Genom att lägga över en annan färg på en bitmap ser den ut att vara markerad. Använd denna procedur för att få ut den effekten.
|
Kod |
procedure Highlight(aSource, ATarget: TBitmap; AColor: TColor); var i, j: Integer; s, t: pRGBTriple; r, g, b: byte; cl: TColor; begin cl := ColorToRGB(AColor); r := GetRValue(cl); g := GetGValue(cl); b := GetBValue(cl); aSource.PixelFormat := pf24bit; ATarget.PixelFormat := pf24bit; ATarget.Width := aSource.Width; ATarget.Height := aSource.Height; for i := 0 to aSource.Height - 1 do begin s := ASource.Scanline[i]; t := ATarget.Scanline[i]; for j := 0 to aSource.Width - 1 do begin t^.rgbtBlue := (b * s^.rgbtBlue) div 255; t^.rgbtGreen := (g * s^.rgbtGreen) div 255; t^.rgbtRed := (r * s^.rgbtRed) div 255; inc(s); inc(t); end; end; end;
|
|
|