Delphi之图片转换为.BMP文件

该篇文章讲述了作者如何在Delphi2010开发的系统中,通过RaveReport进行报表工作时,解决图片打印需求。由于RaveReport只支持BMP格式,作者编写了一个模块化的图片转换程序,可以将JPEG、PNG和BMP格式的图片转换为BMP,以满足客户的图片要求。
摘要由CSDN通过智能技术生成

本人使用Delphi2010开发的系统,通过RaveReport做报表工作时、报表有图片打印要求。

RaveReport仅提供Bitmap component,而Bitmap component支持image要求是.BMP文件,为适应客户要求,本人做了通用的图片文件转换工程,供参考!

1、加载jpeg、pngimange,并定义过程

uses  jpeg,  pngimage;

procedure imagesavetobmp(sour_filename,tag_filename:string);

// sour_filename:源文件名称

// tag_filename:目标文件(.bmp)名称

2、过程源代码

procedure From1.imagesavetobmp(sour_filename,tag_filename:string);
var
jpg:TJPEGimage;
png:Tpngimage;
bmp:Tbitmap;
ext:string;
begin

// 获取文件类型:BMP、JPG、PNG
  ext := copy(sour_filename, pos('.', sour_filename), length(sour_filename));

// 图片转换1:bmp格式
if (ext='.bmp') or (ext ='.BMP') then
  begin
     bmp:=Tbitmap.Create;
     bmp.LoadFromFile(sour_filename);
     bmp.SaveToFile(tag_filename);
  end;
// 图片转换2:jpg格式
if (ext='.JPG') or (ext='.jpg') or (ext='.jpeg') or (ext='.JPEG') then
  begin
     jpg:=TJPEGimage.Create;
     bmp:=Tbitmap.Create;
     try
        jpg.LoadFromFile(sour_filename);
        bmp.Assign(jpg);
        bmp.SaveToFile(tag_filename);
     finally
       jpg.Free ;
      bmp.Free;
     end;
  end;
// 图片转换3:png格式
if (ext='.PNG') or (ext='.png') then
  begin
     png:=Tpngimage.Create;
     bmp:=Tbitmap.Create;
     try
        png.LoadFromFile(sour_filename);
        bmp.Assign(png);
        bmp.SaveToFile(tag_filename);
     finally
       png.Free ;
       bmp.Free;
     end;
  end;
  
end;  // 过程结束

说明:本人在代码开始时讲求模块化模式,所以在本文源码中,本人尽量避免if...else...形式。因此,这段程序中通过三段 if 程序实现3种图片的转换。当然,源bmp文件可以直接通过winexec等方式直接转到目标文件,但为便于系统后期维护等考虑,本人将bmp文件也通过‘’bmp‘进行了中介转换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值