如何使用C++; < >我想用C++代码来减轻一个位图,从代码>输入文件> BMP < /代码>。使用Windows Paint将图像保存为256色位图(*.bmp;*.dib)。我尝试将1添加到每个像素的每种颜色中,使用下面的代码使其稍微变亮: #包括 #包括 使用名称空间std; const int CHARS_PER_PIXEL=3; int main(){ ifstream inputStream(“input_file.bmp”,ios::binary);//读取输入 如果(!inputStream.good()) 返回1; char*temp=新字符[sizeof(BITMAPFILEHEADER)]; 读取(temp,sizeof(BITMAPFILEHEADER)); BITMAPFILEHEADER*FileInfo=新的BITMAPFILEHEADER; *FileInfo=*(位图文件头*)(临时文件); temp=新字符[sizeof(BitMapInfo头)]; read(temp,sizeof(BitMapInfo头)); BitMapInfo头*PictureInfo=新的BitMapInfo头; *PictureInfo=*(BitMapInfo头*)(临时); 删除临时文件; int charsNumber=CHARS\u/u像素*PictureInfo->biHeight*PictureInfo->biWidth; unsigned char*arrayOfChars=新的unsigned char[charsNumber]; read((char*)arrayOfChars,charsNumber*sizeof(char)); inputStream.close(); for(int i=0;i255?255:arrayOfChars[i]+1; ofstream outputStream(“output_file.bmp”,ios::binary);//保存输出 如果(!outputStream.good()){ 删除文件信息; 删除图片信息; 删除arrayOfChars; 返回1; } write((char*)FileInfo,sizeof(BITMAPFILEHEADER)); write((char*)PictureInfo,sizeof(BitMapInfo头)); write((char*)arrayOfChars,charsNumber*sizeof(char)); outputStream.close(); 删除文件信息; 删除图片信息; 删除arrayOfChars; 返回0; }
代码读取位图文件,使用如何使用C++; < >我想用C++代码来减轻一个位图,从代码>输入文件> BMP < /代码>。使用Windows Paint将图像保存为256色位图(*.bmp;*.dib)。我尝试将1添加到每个像素的每种颜色中,使用下面的代码使其稍微变亮: #包括 #包括 使用名称空间std; const int CHARS_PER_PIXEL=3; int main(){ ifstream inputStream(“input_file.bmp”,ios::binary);//读取输入 如果(!inputStream.good()) 返回1; char*temp=新字符[sizeof(BITMAPFILEHEADER)]; 读取(temp,sizeof(BITMAPFILEHEADER)); BITMAPFILEHEADER*FileInfo=新的BITMAPFILEHEADER; *FileInfo=*(位图文件头*)(临时文件); temp=新字符[sizeof(BitMapInfo头)]; read(temp,sizeof(BitMapInfo头)); BitMapInfo头*PictureInfo=新的BitMapInfo头; *PictureInfo=*(BitMapInfo头*)(临时); 删除临时文件; int charsNumber=CHARS\u/u像素*PictureInfo->biHeight*PictureInfo->biWidth; unsigned char*arrayOfChars=新的unsigned char[charsNumber]; read((char*)arrayOfChars,charsNumber*sizeof(char)); inputStream.close(); for(int i=0;i255?255:arrayOfChars[i]+1; ofstream outputStream(“output_file.bmp”,ios::binary);//保存输出 如果(!outputStream.good()){ 删除文件信息; 删除图片信息; 删除arrayOfChars; 返回1; } write((char*)FileInfo,sizeof(BITMAPFILEHEADER)); write((char*)PictureInfo,sizeof(BitMapInfo头)); write((char*)arrayOfChars,charsNumber*sizeof(char)); outputStream.close(); 删除文件信息; 删除图片信息; 删除arrayOfChars; 返回0; },c++,windows,image-processing,bitmap,bmp,C++,Windows,Image Processing,Bitmap,Bmp,代码读取位图文件,使用Windows.h库中提供的结构读取位图标题,为每个像素的每种颜色添加1值,并将所有值保存在输出文件中 该代码生成如下所示的图像: 生成的图像(右边的图像)不会变亮,但会以不同的方式进行修改。我怎样才能改正我的错误 编辑: 调试时,我提取了存储在标题中的值: BITMAPFILEHEADER: 类型:19778 尺寸:361078 bfReserved1:0 bfReserved2:0 bOffBits:1078 BitMapInfo标头: 大小:40 宽度:600
Windows.h
库中提供的结构读取位图标题,为每个像素的每种颜色添加1值,并将所有值保存在输出文件中
该代码生成如下所示的图像:
生成的图像(右边的图像)不会变亮,但会以不同的方式进行修改。我怎样才能改正我的错误
编辑:
调试时,我提取了存储在标题中的值:
BITMAPFILEHEADER:
- 类型:19778
- 尺寸:361078
- bfReserved1:0
- bfReserved2:0
- bOffBits:1078
- 大小:40
- 宽度:600
- 身高:600
- 双翼飞机:1
- 比特数:8
- 双压缩:0
- 比西泽年龄:36000
- biXPelsPerMeter:0
- 双磁通计:0
- 二次使用:0
- 重要信息:0