欢迎来到天天文库
浏览记录
ID:35199321
大小:316.66 KB
页数:7页
时间:2019-03-21
《delphi7图片格式转换》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Delphi7图片格式转换例程本例将制作一个应用程序,用来转换图片的格式,运行界面如图:图1点击“打开图像”按钮,可以从弹出的对话框中选择合适的图像打开。如果打开的图像是bmp格式的图片,点击“BMP转灰度”按钮,可以将原来彩色的BMP图像转换成灰色度的图像,并弹出保存对话框,以便保存转换后的图像。如图2所示。点击“BmpToJpeg”按钮,将BMP格式转换成JPG格式,同时弹出保存对话框,保存转换后的图像。如果打开的图像是JPG格式的图片,“BMP转灰度”按钮和“BmpToJpeg”按钮无效。点击“JpegToBmp”按钮,将JPG格式转换成BMP格式,同时弹出保存对话框,保存转
2、换后的图像。点击“退出程序”按钮,关闭此应用程序。设计思想本例用到的控件主要是Image控件,Panel控件,OpenPictureDialog控件,SavePictureDialog控件,Button控件,Label控件等。BMP格式是Windows系统中标准的图像文件格式,具有极强的通用性。但其突出的缺点是文件过于庞大。目前Jpg格式的图片得到了广泛的应用,它的大小仅为BMP格式文件的1/10左右,而且图像品质并没有明显的损失。在许多情况下,我们需要在BMP和JPG两种图像格式之间进行转换。图2BMP转灰度后的图像BMP格式的图像是由像素组成的,一副彩色的图像包含了许多个像素点
3、,每个像素都包含了三原色R,G,B。如果将单一的灰色赋值给彩色图像的各个像素,彩色图像就变成了灰色的黑白图像。本程序主要分为以下几个步骤实现:(1)、在窗口上放置各个控件,并设置它们的属性;(2)、实现打开图像的功能,利用OpenPictureDialog控件的相关事件来实现;(3)、实现彩色bmp格式的图像转换成黑白图像,需要自定义相关函数实现;(4)、实现BMP与JPG两中格式之间的转换是最关键的问题。打开图像文件后,针对图像的不同格式进行相关事件的响应,需要用到LowerCase(s),ExtractFileExt()等相关函数。在打开图像文件后对文件的后缀名进行检查,针对不
4、同的格式进行相应的处理。(5)、保存转换后的图像利用SavePictureDialog控件的相关事件来实现。还有几个地方需要注意:首先添加Panel控件,调整其合适的大小及位置。在属性面板设置BevelInner和BevelOuter属性均为“bvLowered”,BorderStyle属性为“bsSingle”,BevelWidth和BorderWidth均为1,这样Panel控件看起来具有立体感。其次,在窗体中Panel1控件上添加Image控件,在“属性”面板中用鼠标点击Picture属性右边的按钮,从弹出的对话框中选择合适的图像文件导入,用来设置应用程序开始运行时界面上的图
5、像。如图1中的美女图片,就是在Picture属性里导入的。设置其Align属性为“alClient”,Stretch属性为“True”,使图像撑满整个Panel1控件。最后,在窗体上添加OpenPictureDialog控件和SavePictureDialog控件。在“属性”面板中设置OpenPictureDialog控件的Options属性为“[ofHideReadOnly,ofEnableSizing]”,Filter属性为“All(*.jpg;*.jpeg;*.bmp;*.ico;*.emf;*.wmf)”,SavePictureDialog控件属性的设置与OpenPictu
6、reDialog控件类似。Filter属性设置如图:图3Filter属性设置添加完控件后的窗体如图所示:图4添加完控件后的窗体程序源代码:unitBmpToJpeg;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ExtCtrls,ExtDlgs,StdCtrls,JPEG;//此处注意添加JPGE;typeTForm1=class(TForm)Panel1:TPanel;Image1:TImage;OpenPictureDialog1:TOpenPict
7、ureDialog;SavePictureDialog1:TSavePictureDialog;Button1:TButton;Button2:TButton;Button3:TButton;Button4:TButton;Button5:TButton;Label1:TLabel;procedureButton2Click(Sender:TObject);procedureButton5Click(Sender:TObject);procedureFormCreat
此文档下载收益归作者所有