24bits bitmap 文件到256色bitmap 的转换

王朝vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

{**********************************************************}

{ }

{ 图象转换处理单元 }

{ 完成24bits bitmap 文件到256色bitmap 的转换 }

{**********************************************************}

//==========================================================

// 程序编写:陈林茂

// 编写日期:2002-06-28

// 联系作者:linmaochen@sohu.com

//==========================================================

//==========================================================

// 程序的功能: 完成BITMAP格式的图象到JPEG 格式图象的转换

// 程序转换的算法:利用TBITMAP,Tjpeg中的默认的方法进行转换

// 首先定义一BITMAP数据源,将图象文件调入到TBITMAP中;

// 然后定义一JPEG 数据源,将它的数据源定义来源于TBITMAP。

//===========================================================

unit bmpJpg_unit;

interface

Uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, Buttons,Jpeg;

//===========================================================

//函数的功能:将BITMAP格式的文件转换到JPG格式的文件

//函数名称: BMPTOJPG

//参数的说明:

// BMPFILE : 需要转换的BMP格式的文件

// JPGFILE : 转换为JPG格式的目的文件

// COMPRESS : 转换过程中文件的压缩比

//===========================================================

Function BmpToJpg(BmpFile :String; JpgFile :String;Compress :Integer):Boolean;

Function JpgToBmp(JpgFile :String; BmpFile :String;Compress :Integer):Boolean;

implementation

//将BMP图象转化为JPG图象

Function BmpToJpg(BmpFile :String; JpgFile :String;Compress :Integer):Boolean;

Var

Bitmap :TBitmap;

Jpgimage :TjpegImage;

Begin

Result :=False;

Try

bitmap :=TBitmap.Create ;

JpgImage :=TjpegImage.Create ;

bitmap.LoadFromFile(BmpFile);

jpgImage.CompressionQuality :=Compress;

JpgImage.Performance :=jpBestQuality;

jpgImage.Grayscale :=True;

jpgImage.Smoothing :=True;

JpgImage.Assign(Bitmap);

JpgImage.Compress ;

JpgImage.SaveToFile(JpgFile);

Result :=True;

Except

End;

Bitmap.Free;

JpgImage.Free ;

End;

//将JPG图象转化为256色的BMP图象

Function JpgtoBmp(JpgFile :String; BmpFile :String;Compress :Integer):Boolean;

Var

Bitmap :TBitmap;

Jpgimage :TjpegImage;

Begin

Result :=False;

Try

bitmap :=TBitmap.Create ;

JpgImage :=TjpegImage.Create ;

jpgImage.LoadFromFile(JpgFile);

JpgImage.Performance :=jpBestQuality;

jpgImage.Grayscale :=True;

jpgImage.Smoothing :=True;

bitmap.Assign(jpgImage);

bitmap.Dormant ;

bitmap.SaveToFile(bmpfile);

Result :=True;

Except

End;

Bitmap.Free;

JpgImage.Free ;

End;

begin

//将24位彩色图象转化为256色灰度图象

jpgFilename := _appPath +'temp.jpg';

bmpFilename := _appPath +'temp.bmp';

bmptojpg(srcfileName,jpgFilename,100);

jpgtoBmp(jpgfilename,bmpFilename,100);

//经过上面两个步骤,系统自动将24bits bmp 转换为256色bitmap,在delphi5.0下通过测试,只是有点遗憾的是,彩色位图会转化为灰度图象。srcfileName :为24bits BMP文件。

end.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有