图形问题,请图形方面的高手进来一下 ( 积分: 50 )

  • 主题发起人 主题发起人 lngdtommy
  • 开始时间 开始时间
你干么不拿WINDOWS里的画图程序做个实验,里面也有个任意形状选中,然后你可以复制到别的程序或别的位图中试试!

看看效果,你就明白了!
 
to wk_knife
WINDOWS画图?有能画出任意形状的吗?没发现
 
我的意思是,即便是WINDOWS自带的程序复制的图形也不会是任意形状的,是矩形的,我相信用PHOTOSHOP选择的任意形状复制到其他程序中也会是矩形,至于任意形状是需要你用自己的程序做出来的。
 
你可以在PHOTOSHOP中选择一个不规则区域,然后复制到一个有底图的图片中,看看吧,你就会明白了!
 
对,我就想写程序做出不规则的图像啊
 
http://www.2ccc.com/article.asp?articleid=2406
图形截取技术 (多边形和圆形)
看看有用不
 
呵呵chenybin基本回答到点子上了, 问题只是他用了Image.Canvas, 应该用Image.Picture.Bitmap.Canvas, [:D][:D][:D][:D]
用Image.Canvas的话SelectClipRgn前需要用OffsetRgn(FRgn, Image.Left, Image.Top)移一下位置再select进Image.Canvas才会生效
 
我的意思可能真的很难明白。我的意思是不大可能单纯的复制一块不规则的图形到剪贴板中,剪贴板中图形只会是一个包裹了这个不规则图形的一个矩形图形,不规则图形以外的区域会被添上背景色。如果复制到其他程序中,它就不会还表现出是不规则的图形,它是个矩形。PHOTOSHOP之所以可以复制,也只限在它的内部的复制、粘贴上,如果把它的不规则的图形复制到其他程序,依旧是矩形(被添了背景色的)。PHOTOSHOP在复制图形时一定同时使用了几种剪贴板格式(就象WORD,粘贴到写字板就是RTF格式,粘贴到记事本就是TXT格式),有一种它自己定义的格式,除了会复制这个不规则变规则的图象(被填充了的)外,还会同时将这个不规则区域的形状数据复制到剪贴板上,在粘贴时,将不规则的区域做为剪切区域(CLIP REGION),绘制时将区域外的图象都裁掉,也就得到了你所看到的不规则图形的复制。

我的意思总结成一句话:要得到不规则的复制,必须在复制图形数据的同时,复制不规则区域的形状数据。才可能得到你要的效果。
 
建议:多看看基础的编程书,象用C和API做程序,或者看这几本书,网上都可以找到:
Wordware - The Tomes of Delphi 3 - WIN32 graphical API
Wordware The Tomes of Delphi Win32 Shell API Windows 2000 Edition
The Tomes of Delphi Win32 Core API Windows 2000 Edition

会很有收获的!比问问题强!
 
Another_eYes大虾,我这样不对,不知道怎么写,指教[:)]

procedure TForm1.Button1Click(Sender: TObject);
var
Bmp :TBitmap;
FRgn :HRGN;
Ps : array[0..4] of TPoint;
begin
Bmp :=TBitmap.Create;
Ps[0] := Point(20,50);
Ps[1] := Point(100, 100);
Ps[2] :=Point(100, 200);
ps[3] := Point(200, 200);
ps[4] := Point(200, 100);
Bmp.PixelFormat :=Image1.Picture.Bitmap.PixelFormat;
Bmp.Width :=100;
Bmp.Height :=100;
BitBlt(Bmp.Canvas.Handle,0,0,Bmp.Width,Bmp.Height,Image1.Picture.Bitmap.Canvas.Handle,80,80,SRCCOPY); //要拷贝的位图
FRgn := CreatePolygonRgn(ps, 5, WINDING );
OffsetRgn(FRgn, Image1.Left, Image1.Top);
SelectClipRgn(Image1.Picture.Bitmap.Canvas.Handle,FRgn);
Image1.Picture.Bitmap.Canvas.Draw(0,0,bmp);
Image2.Picture.Assign(bmp);
Bmp.Free;
DeleteObject(FRgn);
end;
 
将Image中的一个区域copy到另一个image上,如何写?
 
有没有人会TIF图片倾斜校正和去黑边的啊?我以在论坛里提出问题了!~请高手们回答!~谢谢
 
后退
顶部