社区
Delphi
帖子详情
怎样获得屏幕像素的颜色值?
dongcan
2000-04-03 05:48:00
我需要在窗体中用image控件来显示地图,怎样通过鼠标实现对地图的不同行政区的识别以
进入不同的数据库系统?我打算用颜色区分不同的不规则的行政区,实现鼠标的Click事件
但不知应怎样编写代码,希望各位高手援手。
...全文
296
5
打赏
收藏
怎样获得屏幕像素的颜色值?
我需要在窗体中用image控件来显示地图,怎样通过鼠标实现对地图的不同行政区的识别以 进入不同的数据库系统?我打算用颜色区分不同的不规则的行政区,实现鼠标的Click事件 但不知应怎样编写代码,希望各位高手援手。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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函数
Delphi追踪
屏幕
像素
点
颜色
值
及抓取
屏幕
.rar
Delphi追踪
屏幕
像素
点
颜色
值
及抓取
屏幕
,鼠标运行检测及截图演示Delphi源程序,跟踪象素区域、设置鼠标定时点击
像素
点,测试监视的
像素
点,不明白的看看测试截图就知道了,和鼠标操作密切相关的一个例子。
VC 获取
屏幕
任意
像素
颜色
值
-取色器源码.rar
VC 获取
屏幕
任意
像素
颜色
值
-取色器源码,本取色程序可以方便地使你获取你喜欢的
屏幕
上的
颜色
,并且能够以COLORREF或网页中的16进制的形式显示,而且还可以设置自动的将
颜色
值
复制到剪贴板上,以方便使用 。你还可以设置自己的热键来显示/隐藏主窗体、设置窗口总在最前面、启动时最小化(隐藏)、
屏幕
取色时隐藏主窗口、保存最近所取的
颜色
、自动将
颜色
值
复制到剪贴板上。
朱老师QT完全学习系列课程-0.2.GUI与HMI通用编程基础
本课程主要讲什么(1)基本的显示原理和相关概念:
像素
、
像素
深度、分辨率等(2)显示内存、双缓冲机制、共享内存、mmap映射(3)GUI系统的前段和后段,图像渲染、GPU和GPU渲染的不同(4)控件的概念、属性和方法(事件)、功能控件和容器控件(5)窗口、坐标系、绝对坐标与相对坐标、自适应布局(6)GUI系统的消息机制、显示刷新、动画、交互(7)控件树、布局树、事件树与刷新区域
vb.net 获取
屏幕
某
像素
点
颜色
!!! 取坐标
像素
的
颜色
!获取指定点
颜色
自己写的vb.net代码,压缩包是整个工程,打开后运行可看到效果,输入
屏幕
坐标,X,Y,点击按钮,窗口背景色就编程了坐标对应
像素
的
颜色
。 这个问题好多人问,我试了好多,有的好用,有的不好用。对于VB.NET总体讲有两种方法: 1.取得DC的color
值
:对于任何位置,可以取得它的DC然后得到COLOR
值
,但是对于透明UI位置的color,这个
颜色
不可以赋
值
给控件,因为它是透明的,而获取的UI位置不是透明的,这个
颜色
是可以用来赋
值
的,所以这个不通用。 2.采用获取
屏幕
截图,然后再取得到BITMAP的某
像素
颜色
,这个是通用的,但是消耗内存和CPU。网上有部分核心代码,但对于小菜们还是隔靴搔痒,我的代码直接可以拿来就用,也便于更改和调试。而且一点不浪费资源,因为我不取获取整个
屏幕
,而是根据需求,其实对于一个BITMAP,取一个点就行了。根本不费半点CPU和内存,具体看里面代码吧。
获取
屏幕
某
像素
、坐标
颜色
(包括透明的)
是vb.net程序,不是VB的,自己写的,压缩包里是工程文件,代码简洁,打开工程文件一看就明白,然后可以改成你自己需要的 使用方法是输入X,Y坐标,一点按钮,窗口背景色就变成XY所对应的
颜色
。 VB.NET获取
屏幕
某坐标
颜色
总体两种方法: 1一种是获取DC,然后直接获取对应坐标的COLOR
值
,但是如果你获取的那个坐标锁在UI是个透明或者半透明性质的,整个COLOR
值
就不能直接用来赋
值
给控件
颜色
。这种方法不通用。 2.通用的,是将
屏幕
保存成一个图片,然后取图片坐标
颜色
,这很浪费资源。我测试了一下,放到计时器里,每0.2秒运行一次,程序运行起来一直占用480到680M内存。本例子采用这个原理,但我优化了函数,其实取一个
像素
就可以,这和直接获取
像素
颜色
也差不多了,而且不费一点内存和CPU,CPU使用率0,内存不到5M。
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章