怎样获得屏幕像素的颜色值?

dongcan 2000-04-03 05:48:00
我需要在窗体中用image控件来显示地图,怎样通过鼠标实现对地图的不同行政区的识别以
进入不同的数据库系统?我打算用颜色区分不同的不规则的行政区,实现鼠标的Click事件
但不知应怎样编写代码,希望各位高手援手。
...全文
271 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
eaglet 2000-04-05
如果是JPG,可以修改delphi的jpeg.pas 这个UNIT 来实现
不知dongcan兄是否要求对JPG图象处理,如只是对于BMP,
以上方法足矣
Brain兄将 (sender as TImage) 改为Image1 当然是可以的
但我个人认为影响程序的维护性.
比如你如果在Image2对象的onmousedown事件中也要执行上述
代码,就需要重新再一遍代码.虽然只是改动了一个字.
  • 打赏
  • 举报
回复
eaglet 2000-04-04
//以下代码 当你的鼠标点击到TImage对象上时将自动把Label1对象的Caption属性置为鼠标所在点的颜色值,不知你是否满意,如有问题可以Email给我
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Caption := IntTostr((sender as TImage).Canvas.Pixels[x,y]);
end;
  • 打赏
  • 举报
回复
Brain 2000-04-04
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Label1.Caption := IntTostr(Image1.Canvas.Pixels[x,y]);
end;
//image只能放bmp图才能用Canvas.用其他的(JPG等)都不行,eaglet兄的也只对BMP有效。
  • 打赏
  • 举报
回复
Lin 2000-04-03
It's Too Simple:
1、对于不规则的区域选取,网络上有现成的控件,找不到我可以G个给你;
2、最好在OnMouseMove返回颜色:Canvas.Pixels[X, Y]。
  • 打赏
  • 举报
回复
forgettor 2000-04-03
试试API之GetPixel函数
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi

5142

社区成员

Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
帖子事件
创建了帖子
2000-04-03 05:48
社区公告
暂无公告