全 全文检索 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-26 #1 用API从一个DC上复制一个区域的图像,一定要用GetPixel,SetPixel一个个点去画吗,很慢 有没有一个API可以拷贝一个区域的图像,在DC上
全 全文检索 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-27 #2 用Canvas.CopyRect是封装起来的,我不想用 CopyRect又是另一个意思 function CopyRect(var lprcDst: TRect; const lprcSrc: TRect): BOOL; stdcall; 这个怎么用啊,只提供了两个TRect.
用Canvas.CopyRect是封装起来的,我不想用 CopyRect又是另一个意思 function CopyRect(var lprcDst: TRect; const lprcSrc: TRect): BOOL; stdcall; 这个怎么用啊,只提供了两个TRect.
G gohoo Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-27 #3 CopyRect就是bitblt 第一个Rect 是copy的图像放置的地方。 第二个Rect 是copy的图像来源
全 全文检索 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-27 #4 procedure TForm1.Button7Click(Sender: TObject); var rect1,rect2:trect; begin rect1.Left :=0; rect1.Top:=0; rect1.Right:=200; rect1.Bottom:=200; rect2.Left :=200; rect2.Top:=200; rect2.Right:=400; rect2.Bottom:=400; copyrect(rect1,rect2); end; 楼上兄弟,这会有什么效果,我看不到
procedure TForm1.Button7Click(Sender: TObject); var rect1,rect2:trect; begin rect1.Left :=0; rect1.Top:=0; rect1.Right:=200; rect1.Bottom:=200; rect2.Left :=200; rect2.Top:=200; rect2.Right:=400; rect2.Bottom:=400; copyrect(rect1,rect2); end; 楼上兄弟,这会有什么效果,我看不到
A anson60 Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-27 #5 BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth, int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop); 位图从一个设备场景复制到另一个 说明 将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容 参数表 参数 类型及说明 hdcDest ,目标设备场景 nXDest,nYDest ,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示 nWidth,nHeight ,欲传输图象的宽度和高度 hSrcDC ,源设备场景。如光栅运算未指定源,则应设为0 nXSrc,nySrc ,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示 dwRop ,传输过程要执行的光栅运算 注解 在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败 如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程 例: BitBlt(Canvas.Handle ,0,0,Width,Height, DC,R.Left,R.Top ,SRCCOPY);
BitBlt(HDC hdcDest,int nXDest,int nYDest,int nWidth, int nHeight,HDC hdcSrc,int nXSrc,int nYSrc,DWORD dwRop); 位图从一个设备场景复制到另一个 说明 将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容 参数表 参数 类型及说明 hdcDest ,目标设备场景 nXDest,nYDest ,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示 nWidth,nHeight ,欲传输图象的宽度和高度 hSrcDC ,源设备场景。如光栅运算未指定源,则应设为0 nXSrc,nySrc ,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示 dwRop ,传输过程要执行的光栅运算 注解 在NT环境下,如在一次世界传输中要求在源设备场景中进行剪切或旋转处理,这个函数的执行会失败 如目标和源DC的映射关系要求矩形中像素的大小必须在传输过程中改变,那么这个函数会根据需要自动伸缩、旋转、折叠、或切断,以便完成最终的传输过程 例: BitBlt(Canvas.Handle ,0,0,Width,Height, DC,R.Left,R.Top ,SRCCOPY);
G gohoo Unregistered / Unconfirmed GUEST, unregistred user! 2006-12-27 #6 procedure TForm1.Button1Click(Sender: TObject); var cs:Tcanvas; rect1,rect2:Trect; begin cs:=Tcanvas.Create; cs.Handle:=GETdc(0); form1.Canvas.CopyRect(rect(10,10,50,50),cs,rect(10,10,50,50)); bitblt(getdc(form1.Handle),50,50,100,100,getdc(0),50,50,cmSrcAnd); StretchBlt(getdc(form1.Handle),100,100,150,150,getdc(0),0,0,150,150,cmSrcAnd); cs.Free; end;
procedure TForm1.Button1Click(Sender: TObject); var cs:Tcanvas; rect1,rect2:Trect; begin cs:=Tcanvas.Create; cs.Handle:=GETdc(0); form1.Canvas.CopyRect(rect(10,10,50,50),cs,rect(10,10,50,50)); bitblt(getdc(form1.Handle),50,50,100,100,getdc(0),50,50,cmSrcAnd); StretchBlt(getdc(form1.Handle),100,100,150,150,getdc(0),0,0,150,150,cmSrcAnd); cs.Free; end;