本文主要是介绍BCB实现BMP图片的RGB分解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1、打开BMP图片文件,在Image控件中显示;
{
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>
{
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方法保存;
这篇关于BCB实现BMP图片的RGB分解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!