请问如何实现颜色闪光功能(50分)

  • 主题发起人 主题发起人 xiaowei78
  • 开始时间 开始时间
X

xiaowei78

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在一幅图上选定某种颜色,然后再将这种颜色用黑白两色交替显示几秒,达到闪光的功能,请问如何实现?
最好能有类似源码。3x
不好意思,实在没分了。
 
那个不太好做啦,先要把指定颜色的区域的位置存入数组,然后对图片进行重画
 
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
selectcolor:tcolor;
change:boolean;
pal:array [0..255] of array [0..255] of boolean;
implementation

{$R *.dfm}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var i,j:integer;
begin
timer1.Enabled:=false;
selectcolor:=image1.Canvas.Pixels[x,y];
for i:=0 to image1.Width-1 do
for j:=0 to image1.Height-1 do
if image1.Canvas.Pixels[i,j]=selectcolor then
pal[i,j]:=true;
timer1.Enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var i,j:integer;
cl:tcolor;
begin
if change then cl:=clblack
else
cl:=clwhite;
for i:=0 to image1.Width-1 do
for j:=0 to image1.Height-1 do
if pal[i,j]=true then
image1.Canvas.Pixels[i,j]:=cl;

change:=not change;
end;

end.
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
768
import
I
后退
顶部