#include <iostream>
#include <fstream>
using namespace std;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long DWORD;
typedef long LONG;
void main(){
fstream file;
int i,j;
char fileName[32], RGBQUAD[4][256], PIXEL[128][128],temp[128][128];
WORD bfType;
DWORD bfSize;
WORD bfReserved1;
WORD bfReserved2;
DWORD bfOffBits;
DWORD biSize;
LONG biWidth;
LONG biHeight;
WORD biPlanes;
WORD biBitCount;
DWORD biCompression;
DWORD biSizeImage;
LONG biXPelsPerMeter;
LONG biYPelsPerMeter;
DWORD biClrUsed;
DWORD biClrImportant;
//將資料從檔案輸入到記憶體
cout << "Open FileName: ";
cin >> fileName;
file.open(fileName, ios::in|ios::binary);
file.read((char*)&bfType, sizeof(WORD));
file.read((char*)&bfSize, sizeof(DWORD));
file.read((char*)&bfReserved1, sizeof(WORD));
file.read((char*)&bfReserved2, sizeof(WORD));
file.read((char*)&bfOffBits, sizeof(DWORD));
file.read((char*)&biSize, sizeof(DWORD));
file.read((char*)&biWidth, sizeof(LONG));
file.read((char*)&biHeight, sizeof(LONG));
file.read((char*)&biPlanes, sizeof(WORD));
file.read((char*)&biBitCount, sizeof(WORD));
file.read((char*)&biCompression, sizeof(DWORD));
file.read((char*)&biSizeImage, sizeof(DWORD));
file.read((char*)&biXPelsPerMeter, sizeof(LONG));
file.read((char*)&biYPelsPerMeter, sizeof(LONG));
file.read((char*)&biClrUsed, sizeof(DWORD));
file.read((char*)&biClrImportant, sizeof(DWORD));
file.read(RGBQUAD[0], sizeof(RGBQUAD));
file.read(PIXEL[0], sizeof(PIXEL));
file.close();
//顯示檔案資訊
cout << "FILE_HEADER\n"
<< "bfType=\t\t" << bfType << '\n'
<< "bfSize=\t\t" << bfSize << '\n'
<< "bfReserved1=\t" << bfReserved1 << '\n'
<< "bfReserved2=\t" << bfReserved2 << '\n'
<< "bfOffBits=\t" << bfOffBits << "\n\n"
<< "INFO_HEADER\n"
<< "biSize=\t\t" << biSize << '\n'
<< "biWidth=\t" << biWidth << '\n'
<< "biHeight=\t" << biHeight << '\n'
<< "biPlanes=\t" << biPlanes << '\n'
<< "biBitCount=\t" << biBitCount << '\n'
<< "biCompression=\t" << biCompression << '\n'
<< "biSizeImage=\t" << biSizeImage << '\n'
<< "biXPelsPerMeter=" << biXPelsPerMeter << '\n'
<< "biYPelsPerMeter=" << biYPelsPerMeter << '\n'
<< "biClrUsed=\t" << biClrUsed << '\n'
<< "biClrImportant=\t" << biClrImportant << "\n\n";
//將圖片資訊暫存到TEMP裡面
for(i=127;i>=0;i--){
for(j=127;j>=0;j--){
temp[i][j]=PIXEL[i][j];
}
}
//將資訊反轉180度
for(i=0;i<=127;i++){
for(j=0;j<=127;j++){
PIXEL[127-i][127-j]=temp[i][j];
}
}
//將資料從記憶體輸出到檔案
cout << "輸入旋轉後儲存的名稱:\t";
cin >> fileName;
file.open(fileName, ios::out|ios::binary);
file.write((char*)&bfType, sizeof(WORD));
file.write((char*)&bfSize, sizeof(DWORD));
file.write((char*)&bfReserved1, sizeof(WORD));
file.write((char*)&bfReserved2, sizeof(WORD));
file.write((char*)&bfOffBits, sizeof(DWORD));
file.write((char*)&biSize, sizeof(DWORD));
file.write((char*)&biWidth, sizeof(LONG));
file.write((char*)&biHeight, sizeof(LONG));
file.write((char*)&biPlanes, sizeof(WORD));
file.write((char*)&biBitCount, sizeof(WORD));
file.write((char*)&biCompression, sizeof(DWORD));
file.write((char*)&biSizeImage, sizeof(DWORD));
file.write((char*)&biXPelsPerMeter, sizeof(LONG));
file.write((char*)&biYPelsPerMeter, sizeof(LONG));
file.write((char*)&biClrUsed, sizeof(DWORD));
file.write((char*)&biClrImportant, sizeof(DWORD));
file.write(RGBQUAD[0], sizeof(RGBQUAD));
file.write(PIXEL[0], sizeof(PIXEL));
file.close();
}
分享到:
相关推荐
使用C++读取TM遥感数据,并写成8位的BMP位图
C++读取保存BMP图像,包括8位,24位的读取和保存,灰度图的转换,不使用任何已有读取、转换、保存等库函数。跨平台使用,理论上Linux与Windows上均可使用,Windows上测试成功。
读取bmp读取bmp读取bmp读取bmp读取bmp读取bmp图片读取bmp读取bmp读取bmp读取bmp读取bmp读取bmp图片 读取bmp读取bmp读取bmp读取bmp读取bmp读取bmp图片 读取bmp读取bmp读取bmp读取bmp读取bmp读取bmp图片 读取bmp读取...
c++读取bmp格式图片
C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++读取XML详解C++...
使用c++语言提取bmp图像的像素信息,然后将这些信息储存在图像像素.txt中,同时能够将读取之后的图像复制一遍储存。
读取,存储BMP资源C++实现 读取BMP图像的高宽,像素信心放在全局变量中
功能: 读取bmp 代码示例: typedef struct _bmpsize { long bmpWidth;//位图宽,单位为象素LONG=long(有符号) long bmpHeight;//位图高,单位为象素LONG=long(有符号) unsigned short BitCount;//每个...
在vc+ xp运行成功 可读取bmp文件,是初学者的理想选择!赶紧看看吧
C++读取Excel数据 ole 模式 VS2003 Excel 2003
利用C++语言,读取BMP图像的高度和宽度,将数据转成为RAW格式,再利用文件头和RAW文件的数据,重新转化成BMP文件。其中采用了动态二维数组。
bmp24位彩色图像转8位灰度图像,纯C++语言实现,适合图片处理初学者。
8bit 位bmp 转换 24bit vs 2008 上面编译。 没有安全检查代码,只有核心的转换代码。 里面有 说明.docx 可以查看
本文件中有三份C++程序的代码,均可以读取.bmp文件的图像。其中包括彩色的.bmp文件和黑白的.bmp文件的代码。并且可以实现对文件图像的任意角度的旋转,以及旋转后的图像保存,为广大朋友提供诸多便利。并且也可以在...
C++读取html内容,支持HTTPS,只包含cpp,h文件,可以应用到任何C++项目经理
用C++编程实现BMP文件格式的读取,此代码可以直接在c++上面运行
把基于BMP格式的图片的每一点的RGB的值读取出来
读取环境为Win10+VS2015,个人参考资料封装的excel读取模块用来读取Excel2007中的数据,文件为压缩文件,亲测可用。
读取BMP图片并显示在控件上面读取BMP图片并显示在控件上面
c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件c++读取xml文件