BCB实现BMP图片的RGB分解,BMP与JPG格式的相互转换

BCB实现BMP图片的RGB分解 

1、打开BMP图片文件,在Image控件中显示;

   if (dlgOpen1 -> Execute())
  
{
    edt1
->Text=dlgOpen1->FileName;
    img1
->Picture->LoadFromFile(edt1->Text);
  }

2、逐行扫描图片,获取图片中每点的像素颜色值;
       color=img1->Canvas->Pixels[i][j];

3、从获取的颜色值中提取R、G、B分量;
        rgbbuf[0][i][j]=GetRValue(color);
        rgbbuf[1][i][j]=GetGValue(color);
        rgbbuf[2][i][j]=GetBValue(color);

BMP与JPG格式的相互转换

函数代码如下,在程序头文件中加入:#include <jpeg.hpp>

void    bmptojpeg(TMemoryStream    * pms)
  
{   
        TJPEGImage   
*j=new   TJPEGImage;   
        Graphics::TBitmap   
*b=new   Graphics::TBitmap;
        b
->LoadFromStream(pms);
        j
->Assign(b);   
        j
->CompressionQuality=60;       //等级太高有可能压缩出错!   
        j->Compress();   
        pms
->Clear();   
        j
->SaveToStream(pms);   
        pms
->Position=0;   
        delete   b;   
        delete   j;   
          
  }
   
  
void    jpegtobmp(TMemoryStream    * pms)   
  
{   
      TJPEGImage   
*j=new   TJPEGImage;   
      Graphics::TBitmap   
*b=new   Graphics::TBitmap;   
    
      j
->LoadFromStream(pms);   
      j
->DIBNeeded();   
      b
->Assign(j);   
      pms
->Clear();   
      b
->SaveToStream(pms);   
      pms
->Position=0;   
    
      delete   b;   
      delete   j;   
    
  }

要将转换后的流保存成文件可以使用:SaveToFile方法保存;

 

 


 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值