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

原创 2003年04月01日 09:03:00

{**********************************************************}
{                                                                                                      }
{                      图象转换处理单元                                                    }
{                    完成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.

bmp图片转换成jpg图片

  • 2009年12月06日 17:16
  • 2.06MB
  • 下载

24位Bitmap转换256色(.h版本)

  • 2009年07月17日 09:53
  • 14KB
  • 下载

把opencv Mat 按位存成bmp二值图像 (1bit 1pixel)

网上有很多关于bmp图像的资料,但是很多都是存成灰度图,和彩色图,我这个代码是把Mat存成二值图 首先我肯定是站在前人的基础上,一些关于bmp的介绍操作 格式介绍: http://blog.csd...
  • suifeng50
  • suifeng50
  • 2015年12月04日 17:40
  • 3462

图像处理--真彩转256色

 一、减色处理目的  位图采用RGB颜色模型,是一个二维的像素矩阵的方法显示和存储的图象,矩阵中的每个元素代表一个像素。真彩图像为24位图,即包含多达224种颜色。真彩图片的特点:它没有调色板,直接用...
  • zuzubo
  • zuzubo
  • 2007年05月06日 12:00
  • 5424

24位位图转256色图位图

 BYTE * TrueBMPto256( BYTE * pBmpBuf, int bmpWidth, int bmpHeight)  //lineByte:实际宽度; {    BYTE * pte...
  • chinabinlang
  • chinabinlang
  • 2011年06月17日 10:16
  • 1744

QT下256彩色BMP&JPG图像生成

QTextCodec* cod=QTextCodec::codecForLocale();        QImage* image=new QImage(300,200,QImage::Format...
  • xuexiaokkk
  • xuexiaokkk
  • 2017年01月06日 17:58
  • 912

256色图像不一定是灰度图像。

256色图像属于伪彩色图像,但是他也是8位的呀,他和256灰度图有什么差别?256色图像是如何表示颜色的?   灰度图像:每个像素由一个字节,即是八位,共256种色,且红绿蓝三...
  • caiqi1123
  • caiqi1123
  • 2011年12月15日 14:07
  • 1259

BmpToJpg程序源码

  • 2010年03月07日 17:50
  • 289KB
  • 下载

VC6怎样将bmp格式图象转换为jpg格式文件?

VC6怎样将bmp格式图象转换为jpg格式文件?   利用 IJG 的 jpeg 库。   关于如何使用 IJG jpeg 库,请参考前面的文章: VC6下编译IJG库(用于读取和生成jpg...
  • jiqishijue007
  • jiqishijue007
  • 2012年12月29日 17:11
  • 726

MFC下256色BMP位图的保存

一、BMP位图的文件格式 BMP文件的数据按照从文件头开始的先后顺序分为四个部分: ◆ 位图文件头(bmp file header):  提供文件的格式、大小等信息 ◆ 位图信息头(bitmap...
  • qq_22531295
  • qq_22531295
  • 2017年02月22日 15:00
  • 475
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:24bits bitmap 文件到256色bitmap 的转换
举报原因:
原因补充:

(最多只允许输入30个字)