#include<math.h>
#include <iomanip.h>
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
int bmpWidth;
int bmpHeight;
RGBQUAD *pColorTable;int biBitCount;
bool readBmp(char *bmpName)
{
FILE *fp=fopen(bmpName,"rb");// if(fp==0) return 0;
fseek(fp, sizeof(BITMAPFILEHEADER),0);
BITMAPINFOHEADER head; fread(&head, sizeof(BITMAPINFOHEADER), 1,fp); bmpWidth = head.biWidth; bmpHeight = head.biHeight; biBitCount = head.biBitCount; int lineByte=(bmpWidth * biBitCount/8+3)/4*4; if(biBitCount==8)
{ pColorTable=new RGBQUAD[256]; fread(pColorTable,sizeof(RGBQUAD),256,fp); } pBmpBuf=new unsigned char[lineByte * bmpHeight]; fread(pBmpBuf,1,lineByte * bmpHeight,fp); fclose(fp); return 1;
}
bool saveBmp(char *bmpName, unsigned char *imgBuf, int width, int height, int biBitCount, RGBQUAD *pColorTable){ if(!imgBuf) return 0; int colorTablesize=0; if(biBitCount==8) colorTablesize=1024; int lineByte=(width * biBitCount/8+3)/4*4; FILE *fp=fopen(bmpName,"wb"); if(fp==0) return 0; BITMAPFILEHEADER fileHead; fileHead.bfType = 0x4D42; fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + colorTablesize + lineByte*height; fileHead.bfReserved1 = 0; fileHead.bfReserved2 = 0; fileHead.bfOffBits=54+colorTablesize; fwrite(&fileHead, sizeof(BITMAPFILEHEADER),1, fp); BITMAPINFOHEADER head; head.biBitCount=biBitCount; head.biClrImportant=0; head.biClrUsed=0; head.biCompression=0; head.biHeight=height; head.biPlanes=1; head.biSize=40; head.biSizeImage=lineByte*height; head.biWidth=width; head.biXPelsPerMeter=0; head.biYPelsPerMeter=0; fwrite(&head, sizeof(BITMAPINFOHEADER),1, fp); if(biBitCount==8) fwrite(pColorTable, sizeof(RGBQUAD),256, fp); fwrite(imgBuf, height*lineByte, 1, fp); fclose(fp); return 1;}void xiang_su_du_qu(){ char readPath[]="nv.BMP"; readBmp(readPath); cout<<"width="<<bmpWidth<<" height="<<bmpHeight<<" biBitCount="<<biBitCount<<endl; int lineByte=(bmpWidth*biBitCount/8+3)/4*4;
int m=0,n=0,count_xiang_su=0;
ofstream outfile("图像像素.txt",ios::in|ios::trunc); if(biBitCount==8)
{ int L1=0;
int hang=63;
int lie=0;
//int L2=0;
//int fen_ge=8;
for(int fen_ge_hang=0;fen_ge_hang<8;fen_ge_hang++)
{
for(int fen_ge_lie=0;fen_ge_lie<8;fen_ge_lie++)
{
//--------------------------------------------
for(L1=hang;L1>hang-8;L1--)
{
for(int L2=lie;L2<lie+8;L2++)
{
m=*(pBmpBuf+L1*lineByte+L2);
outfile<<m<<" ";
count_xiang_su++;
if(count_xiang_su%8==0)
{
outfile<<endl;
}
}
}
//---------------------------------------------
hang=63-fen_ge_hang*8;
lie+=8;
}
hang-=8;
lie=0;
}
} //double xiang_su[2048];
//ofstream outfile("xiang_su_zhi.txt",ios::in|ios::trunc);
if(!outfile)
{
cout<<"open error!"<<endl;
exit(1);
}
else if(biBitCount==24){//彩色图像 for(int i=0;i<bmpHeight;i++)
{ for(int j=0;j<bmpWidth;j++)
{ for(int k=0;k<3;k++)
{
//*(pBmpBuf+i*lineByte+j*3+k)-=40;
m=*(pBmpBuf+i*lineByte+j*3+k);
outfile<<m<<" ";
count_xiang_su++;
if(count_xiang_su%8==0)
{
outfile<<endl;
}
//n++;
}
n++;
}
}
cout<<"总的像素个素为:"<<n<<endl;
cout<<"----------------------------------------------------"<<endl; }
char writePath[]="nvcpy.BMP"; saveBmp(writePath, pBmpBuf, bmpWidth, bmpHeight, biBitCount, pColorTable); delete []pBmpBuf; if(biBitCount==8) delete []pColorTable;}
void main()
{
xiang_su_du_qu();
}
#include <iomanip.h>
#include <stdlib.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
#include <fstream.h>
int bmpWidth;
int bmpHeight;
RGBQUAD *pColorTable;int biBitCount;
bool readBmp(char *bmpName)
{
FILE *fp=fopen(bmpName,"rb");// if(fp==0) return 0;
fseek(fp, sizeof(BITMAPFILEHEADER),0);
BITMAPINFOHEADER head; fread(&head, sizeof(BITMAPINFOHEADER), 1,fp); bmpWidth = head.biWidth; bmpHeight = head.biHeight; biBitCount = head.biBitCount; int lineByte=(bmpWidth * biBitCount/8+3)/4*4; if(biBitCount==8)
{ pColorTable=new RGBQUAD[256]; fread(pColorTable,sizeof(RGBQUAD),256,fp); } pBmpBuf=new unsigned char[lineByte * bmpHeight]; fread(pBmpBuf,1,lineByte * bmpHeight,fp); fclose(fp); return 1;
}
bool saveBmp(char *bmpName, unsigned char *imgBuf, int width, int height, int biBitCount, RGBQUAD *pColorTable){ if(!imgBuf) return 0; int colorTablesize=0; if(biBitCount==8) colorTablesize=1024; int lineByte=(width * biBitCount/8+3)/4*4; FILE *fp=fopen(bmpName,"wb"); if(fp==0) return 0; BITMAPFILEHEADER fileHead; fileHead.bfType = 0x4D42; fileHead.bfSize= sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + colorTablesize + lineByte*height; fileHead.bfReserved1 = 0; fileHead.bfReserved2 = 0; fileHead.bfOffBits=54+colorTablesize; fwrite(&fileHead, sizeof(BITMAPFILEHEADER),1, fp); BITMAPINFOHEADER head; head.biBitCount=biBitCount; head.biClrImportant=0; head.biClrUsed=0; head.biCompression=0; head.biHeight=height; head.biPlanes=1; head.biSize=40; head.biSizeImage=lineByte*height; head.biWidth=width; head.biXPelsPerMeter=0; head.biYPelsPerMeter=0; fwrite(&head, sizeof(BITMAPINFOHEADER),1, fp); if(biBitCount==8) fwrite(pColorTable, sizeof(RGBQUAD),256, fp); fwrite(imgBuf, height*lineByte, 1, fp); fclose(fp); return 1;}void xiang_su_du_qu(){ char readPath[]="nv.BMP"; readBmp(readPath); cout<<"width="<<bmpWidth<<" height="<<bmpHeight<<" biBitCount="<<biBitCount<<endl; int lineByte=(bmpWidth*biBitCount/8+3)/4*4;
int m=0,n=0,count_xiang_su=0;
ofstream outfile("图像像素.txt",ios::in|ios::trunc); if(biBitCount==8)
{ int L1=0;
int hang=63;
int lie=0;
//int L2=0;
//int fen_ge=8;
for(int fen_ge_hang=0;fen_ge_hang<8;fen_ge_hang++)
{
for(int fen_ge_lie=0;fen_ge_lie<8;fen_ge_lie++)
{
//--------------------------------------------
for(L1=hang;L1>hang-8;L1--)
{
for(int L2=lie;L2<lie+8;L2++)
{
m=*(pBmpBuf+L1*lineByte+L2);
outfile<<m<<" ";
count_xiang_su++;
if(count_xiang_su%8==0)
{
outfile<<endl;
}
}
}
//---------------------------------------------
hang=63-fen_ge_hang*8;
lie+=8;
}
hang-=8;
lie=0;
}
} //double xiang_su[2048];
//ofstream outfile("xiang_su_zhi.txt",ios::in|ios::trunc);
if(!outfile)
{
cout<<"open error!"<<endl;
exit(1);
}
else if(biBitCount==24){//彩色图像 for(int i=0;i<bmpHeight;i++)
{ for(int j=0;j<bmpWidth;j++)
{ for(int k=0;k<3;k++)
{
//*(pBmpBuf+i*lineByte+j*3+k)-=40;
m=*(pBmpBuf+i*lineByte+j*3+k);
outfile<<m<<" ";
count_xiang_su++;
if(count_xiang_su%8==0)
{
outfile<<endl;
}
//n++;
}
n++;
}
}
cout<<"总的像素个素为:"<<n<<endl;
cout<<"----------------------------------------------------"<<endl; }
char writePath[]="nvcpy.BMP"; saveBmp(writePath, pBmpBuf, bmpWidth, bmpHeight, biBitCount, pColorTable); delete []pBmpBuf; if(biBitCount==8) delete []pColorTable;}
void main()
{
xiang_su_du_qu();
}
解决方案 »
- 学会编程的人一定要做软件开发吗,还可以做其他什么职业
- VC开发Office控件问题
- 如何改变对话条上面的控件颜色?比如编辑框,静态文本
- 内存映射文件似乎有数目限制,如何解决
- CComboBox怎么没有显示出下拉的选项呢?
- ●●●●●●●●●●●关于串口的~~~~~!!!!!!!!!●●●●●●●●●●●
- IOCP 非阻塞socket的WSASend问题
- 高分求教Window提供的API实现:__try{} __excet(1,1){};解决问题立即给分。
- 急,如何才能将多个声音文件(.WAV)合成一个WAV文件???
- 怎么判断一个应用程序是否正在运行?
- win32里面一些系统自带的功能是不是都可以自己创建的呢?
- 跪求这个程序~~~
--------------------Configuration: 000 - Win32 Debug--------------------
Compiling resources...
Compiling...
StdAfx.cpp
Compiling...
000.cpp
MainFrm.cpp
000Doc.cpp
000View.cpp
0000.cpp
e:\000\0000.cpp(228) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Generating Code...
执行 cl.exe 时出错.000.exe - 1 error(s), 0 warning(s)
#include <stdafx.h>