本人想通过非getpixel函数取色
本来准备BitBlt +tbitmap方式实现!可是tbitmap在每秒创建100次的时候 CPU消耗很大
于是我想通过下面方式实现
procedure TForm1.Timer1Timer(Sender: TObject);
var
DC:HDC;
Bitmap:HBitmap;
Buff:array[0..2] of Byte;
bitinf:tagBITMAPINFO;
begin
Buff[0]:=0 ;
Buff[1]:=0 ;
Buff[2]:=0 ; DC:=GetDC(0);
StretchDIBits(DC,
0,
0,
1,
1,
Mouse.CursorPos.X,
Mouse.CursorPos.Y,
1,
1,
@buff,
bitinf,
DIB_RGB_COLORS,
SrcCopy);
ReleaseDC(0,DC);
Form1.Color:=RGB(Buff[2],Buff[1],Buff[0]);
end;提取结果发现Buff并没有被StretchDIBits过程赋值 请问如何解决呢?
本来准备BitBlt +tbitmap方式实现!可是tbitmap在每秒创建100次的时候 CPU消耗很大
于是我想通过下面方式实现
procedure TForm1.Timer1Timer(Sender: TObject);
var
DC:HDC;
Bitmap:HBitmap;
Buff:array[0..2] of Byte;
bitinf:tagBITMAPINFO;
begin
Buff[0]:=0 ;
Buff[1]:=0 ;
Buff[2]:=0 ; DC:=GetDC(0);
StretchDIBits(DC,
0,
0,
1,
1,
Mouse.CursorPos.X,
Mouse.CursorPos.Y,
1,
1,
@buff,
bitinf,
DIB_RGB_COLORS,
SrcCopy);
ReleaseDC(0,DC);
Form1.Color:=RGB(Buff[2],Buff[1],Buff[0]);
end;提取结果发现Buff并没有被StretchDIBits过程赋值 请问如何解决呢?
解决方案 »
- 如何减少IdTCPServer的内存泄漏
- 求助:如何实现每页打印固定记录条数?谢谢!
- 请教一句sql语言,老是说我格式不对,很简单,搞了一晚上,大家帮帮忙!
- ERR MSG: p_InsertMerch():External exception C000001D
- 请问,如何从串口接收数据并以十六进制显示出来??
- 怎么把10进制转为16进制的格式?谢谢!
- 如何在 delphi 中调用osql 执行*.sql文件
- 我初学,请问窗体的高度怎么设置成1200,现在只能设成612,我不知道改那个属性。请高手赐教!
- 关于自制组件
- 求图象淡入淡出算法
- [dbnetlib][connectionopen(connectionl).)]sqlserver不存在或拒绝访问
- 如何用delphi实现公交线路查询
var
DC:HDC;
Bitmap:HBitmap;
Buff:array[0..2] of Byte;
bmiHeader:BITMAPINFOHEADER;
info:tagBITMAPINFO;
begin
Buff[0]:=0;
Buff[1]:=0;
Buff[2]:=0;
DC:=GetDC(0);
bmiHeader.biSize :=sizeof(BITMAPINFOHEADER);
bmiHeader.biWidth := -1;
bmiHeader.biHeight := -1;
bmiHeader.biPlanes := 1;
bmiHeader.biBitCount := 24;
bmiHeader.biCompression := BI_RGB;
bmiHeader.biSizeImage := 0;
bmiHeader.biXPelsPerMeter := 0;
bmiHeader.biYPelsPerMeter := 0;
bmiHeader.biClrUsed := 0;
bmiHeader.biClrImportant := 0;
info.bmiHeader:=bmiHeader; StretchDIBits(DC,
Mouse.CursorPos.X,
Mouse.CursorPos.Y,
1,
1,
0,
0,
0,
0,
@buff,
info,
DIB_RGB_COLORS,
SrcCopy);
ReleaseDC(0,DC);
Form1.Color:=RGB(Buff[2],Buff[1],Buff[0]);
end;我这样写 还是没有效果
你似乎应该把源窗口句柄作为GetDC的参数。你到底是要从哪里读取图像信息呢?你的图像怎么传送给StretchDIBits呢?我找了半天,也没有找到的原始图像数据的传送代码。