论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > DELPHI >

A4001图片浏览系统的设计与实现

图 4-1屏幕截取流程图

屏幕截取代码及解释

copyright paper51.com

var

内容来自www.paper51.com

Fullscreen : TBitmap;//声明位图 copyright paper51.com

FullscreenCanvas : TCanvas;//声明DELPHI特有的画布,GDI相关

paper51.com

DC : HDC;//GDI句柄 内容来自www.paper51.com

begin

paper51.com

MainTimer.Enabled := False;//取消时钟 内容来自论文无忧网 www.paper51.com

Fullscreen:=TBitmap.Create;//创建一个BITMAP来存放图像

copyright paper51.com

Fullscreen.Width := Screen.Width; http://www.paper51.com

Fullscreen.Height := Screen.Height;

copyright paper51.com

DC:=GetDC(0);//取得屏幕的DC,参数0指的是屏幕 paper51.com

FullscreenCanvas := TCanvas.Create;//创建一个CANVAS对象

内容来自论文无忧网 www.paper51.com

FullscreenCanvas.Handle := DC;

内容来自www.paper51.com

Fullscreen.Canvas.CopyRect

内容来自论文无忧网 www.paper51.com

(Rect(0,0,Screen.Width,Screen.Height),FullScreenCanvas,

内容来自论文无忧网 www.paper51.com

Rect(0,0,Screen.Width,Screen.Height)); http://www.paper51.com

//把整个屏幕复制到BITMAP中

http://www.paper51.com

FullScreenCanvas.Free;//释放CANVAS对象 http://www.paper51.com

ReleaseDC(0,DC);//释放DC

http://www.paper51.com

image1.Picture.Bitmap := FullScreen;//拷贝下的图像赋给IMAGE对象

copyright paper51.com

image1.Width := FullScreen.Width; 内容来自论文无忧网 www.paper51.com

image1.Height := FullScreen.Height; http://www.paper51.com

FullScreen.Free;//释放bitmap

paper51.com

self.Show;//显示窗口

paper51.com

self.WindowState := wsMaximized;//复原窗口状态 内容来自www.paper51.com

MessageBeep(1);//BEEP叫一声,报告图像已经截取好了。 内容来自www.paper51.com

4.2 部分屏幕截取及实现

内容来自论文无忧网 www.paper51.com

部分屏幕截取流程图,如图4-2所示。 paper51.com

http://www.paper51.com

图4-2部分屏幕截取流程图 paper51.com

实现过程及解释:

copyright paper51.com

抓取整个屏幕 paper51.com

Fullscreen := TBitmap.Create;

paper51.com

Fullscreen.Width := Screen.width; http://www.paper51.com

Fullscreen.Height := Screen.Height;

copyright paper51.com

DC:=GetDC(0);

内容来自www.paper51.com

FullscreenCanvas := TCanvas.Create;

paper51.com

FullscreenCanvas.Handle := DC;

内容来自www.paper51.com

Fullscreen.Canvas.CopyRect(Rect(0,0,Screen.Width,Screen.Height), 内容来自www.paper51.com

FullscreenCanvas,Rect(0,0,Screen.Width,Screen.Height));

copyright paper51.com

FullscreenCanvas.Free; http://www.paper51.com

ReleaseDC(0,DC);

内容来自论文无忧网 www.paper51.com

把抓取的位图拷贝到

paper51.com

屏幕位图 内容来自www.paper51.com

ChildImage.picture.Bitmap:=fullscreen;

copyright paper51.com

ChildImage.Width := Fullscreen.Width; paper51.com

ChildImage.Height:=Fullscreen.Height; paper51.com

Fullscreen.free; http://www.paper51.com

CatchScreenShowForm.WindowState := wsMaximized;

paper51.com

CatchScreenShowForm.show;

内容来自论文无忧网 www.paper51.com

messagebeep(1);

内容来自论文无忧网 www.paper51.com

显示,并等待用户输入

内容来自www.paper51.com

区域 内容来自论文无忧网 www.paper51.com

with ChildImage.canvas do http://www.paper51.com

begin

copyright paper51.com

MoveTo(foldx,0);//擦除旧的十字

copyright paper51.com

LineTo(foldx,Screen.Height); 内容来自论文无忧网 www.paper51.com

MoveTo(0,foldy); 内容来自论文无忧网 www.paper51.com

LineTo(Screen.Width,foldy);

copyright paper51.com

MoveTo(x,0);//画上新的十字

内容来自www.paper51.com

LineTo(x,Screen.Height);

copyright paper51.com

MoveTo(0,y); http://www.paper51.com

LineTo(Screen.Width,y); 内容来自www.paper51.com

end; 内容来自www.paper51.com

拷贝区域位图并复制到主界面窗体 http://www.paper51.com

ChildImage.Canvas.Rectangle(x1,y1,oldx,oldy);

内容来自论文无忧网 www.paper51.com

    Width := abs(x2-x1); 内容来自论文无忧网 www.paper51.com

    Height := abs(y2-y1);

内容来自论文无忧网 www.paper51.com

    form1.image1.Width := Width;

http://www.paper51.com

    form1.image1.Height := Height;

http://www.paper51.com

    NewBitmap:=Tbitmap.create; 内容来自论文无忧网 www.paper51.com

    NewBitmap.Width := Width; copyright paper51.com

    NewBitmap.Height := Height;

copyright paper51.com

    NewBitmap.Canvas.CopyRect    (Rect(0,0,width,Height),CatchScreenShowForm.ChildImage.Canvas,

paper51.com

    Rect(x1,y1,x2,y2));//拷贝

http://www.paper51.com

form1.Image1.Picture.Bitmap := NewBitmap; paper51.com

//放到CatchScreenForm的ShowImage上NewBitmap.Free; copyright paper51.com

第5章 图像压缩5.1 有损压缩与无损压缩

内容来自论文无忧网 www.paper51.com

(1)有损压缩 paper51.com

  有损压缩可以减少图像在内存和磁盘中占用的空间,在屏幕上观看图像时,不会发现它对图像的外观产生太大的不利影响。因为人的眼睛对光线比较敏感,光线对景物的作用比颜色的作用更为重要,这就是有损压缩技术的基本依据。 内容来自www.paper51.com

  有损压缩的特点是保持颜色的逐渐变化,删除图像中颜色的突然变化。生物学中的大量实验证明,人类大脑会利用与附近最接近的颜色来填补所丢失的颜色。例如,对于蓝色天空背景上的一朵白云,有损压缩的方法就是删除图像中景物边缘的某些颜色部分。当在屏幕上看这幅图时,大脑会利用在景物上看到的颜色填补所丢失的颜色部分。利用有损压缩技术,某些数据被有意地删除了,而被取消的数据也不再恢复。无可否认,利用有损压缩技术可以大大地压缩文件的数据,但是会影响图像质量。如果使用了有损压缩的图像仅在屏幕上显示,可能对图像质量影响不太大,至少对于人类眼睛的识别程度来说区别不大。可是,如果要把一幅经过有损压缩技术处理的图像用高分辨率打印机打印出来,那么图像质量就会有明显的受损痕迹。 http://www.paper51.com

内容来自www.paper51.com

------分隔线----------------------------
联系方式