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

dongcan 2000-04-03 05:48:00
我需要在窗体中用image控件来显示地图,怎样通过鼠标实现对地图的不同行政区的识别以
进入不同的数据库系统?我打算用颜色区分不同的不规则的行政区,实现鼠标的Click事件
但不知应怎样编写代码,希望各位高手援手。
...全文
293 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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函数

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧