Подсветить изображение

Советы » Изображения » Подсветить изображение

{ 
Question: 
  Does anyone know of a way that I can achieve the same effect on a bitmap 
  that windows achieves when you single click on an icon on the desktop?  In 
  other words, I want to "sorta highlight" a bitmap and let the user know that 
  it's selected. 

Answer: 

  To me it appears as if the icons on my desktop are highlighted by overlaying 
  them with a certain color, so I guess the following routine is of use. 
}


 procedure

Highlight(aSource, ATarget: TBitmap; AColor: TColor); //alters ASource to ATarget by making it appear as if //looked through //colored glass as given by AColor //ASource, ATarget must have been created. //Isn't as slow as it looks. //Physics courtesy of a post by K.H. Brenner 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

;

Другое по теме:

Категории

Статьи

Советы

Copyright © 2022 - All Rights Reserved - www.delphirus.com