- 在线时间
- 490 小时
- 最后登录
- 2024-2-3
- 注册时间
- 2013-2-28
- 听众数
- 117
- 收听数
- 46
- 能力
- 268 分
- 体力
- 39235 点
- 威望
- 1340 点
- 阅读权限
- 255
- 积分
- 31237
- 相册
- 2
- 日志
- 0
- 记录
- 0
- 帖子
- 1388
- 主题
- 937
- 精华
- 0
- 分享
- 0
- 好友
- 111
升级   0% TA的每日心情 | 衰 2020-10-25 11:55 |
|---|
签到天数: 264 天 [LV.8]以坛为家I
- 自我介绍
- 内蒙古大学计算机学院
 群组: 2013年数学建模国赛备 |
我为做机器人自学C++编程,在网上找了个程序改了一下。调试该程序总报错,因为ntd.dll的原因,无匹配的字符信息。我想把我C:\windows\system32\ntd.dll删除后,再下载一个新的ntd.dll替换,老的ntd.dll删不掉。请教专家们啦,看看我这程序错哪。
7 r+ ]7 T6 l) n" L: N+ s6 q#include <iostream.h>6 \* `; S1 d+ z& V" |& z5 v9 {
#include <stdio.h>, o" E) E3 F7 }1 P N$ B# k- F
#include <math.h>
% O9 {) [( L3 J7 etypedef unsigned char BYTE;
- a# O, e" t% r) R I. olong Ary2DW (unsigned char p[4]){
. t+ y" i( G4 C% y3 A$ L9 J. wint a0,a1,a2,a3;unsigned long A;
0 J( D8 L% d, g% X1 Wa0=int (p[0]); a1=int (p[1]);
! b1 |4 d5 e* p4 ^a2=int (p[2]); a3=int (p[3]);
1 Q8 t" I- k( oA=a3*256*256*256+a2*256*256*256+a0;
. \/ t1 K9 L' }' Z! N: `return A;};//实现数的大小正确转换,转换为WORD所代表的实际值 2 ] ~: @5 ?6 U2 p* G9 O0 {
typedef struct tagBITMAPFILEHEADER {- O3 g* p/ @% w( p
BYTE bfType[2];BYTE bfSize[4];
V4 a" D8 k1 y+ ]+ yBYTE bfRcserved1[2];6 m* {7 z7 q) V
BYTE bfRcserved2[2];
& v3 \( F2 h+ _) UBYTE bfoffBits[4];7 ~. m, }) U$ ~) H- b F
}BITMAPFILEHEADER;//定义文件头格式,用相似的数据类型代替系统定义的数据类型4 B9 }1 ^# u& |
typedef struct tagBITMAPINFOHEADER {
" c3 G& Y2 z6 k* t: H5 qBYTE biSize[4];
) b4 p% }" k; G: k g z& fBYTE biWidth[4];+ ]+ y0 g7 q0 Q# {* r" F5 ]
BYTE biHeight[4];
$ q' W& I/ n3 R$ R; M7 PBYTE biCompression[4];5 I# Y& N/ J, Q5 {) |
BYTE biXPelsPerMeter[4];' y! F' m5 {7 T
BYTE biYPelsPerMeter[4];
9 M4 c% S& C$ N3 `1 _9 aBYTE biClrUsed[4];4 ~+ o% D0 W9 t# i- {
BYTE biClrImportant[4];! J& D3 ~ ]; r1 F4 u+ @( |
}BITMAPINFOHEADER;//定义信息头格式,用相似的数据类型代替系统定义的数据类型
- t; @* {4 h2 |/ W. P; z$ `typedef struct BitmapFile{
9 @: e: C6 E" r# v8 uBITMAPFILEHEADER bmfheader;
' {3 N: R3 {$ e8 v. wBITMAPINFOHEADER bminfoheader;7 ?0 e4 `5 h) ^5 ]7 a* l
BYTE bitmapdata[3275520];1 G- Z$ F) |; C- K# I
}bitmap;//定义所处理图像文件对应BMP的文件格式' _, P, b O7 T" M
//主函数,将图像区数据读入B、G、R三个数组4 c2 _4 O o# d8 U9 Q
int main()( ^+ C" L& d$ l, Z( F( E( ^ H$ f
{
; s8 v) C& S" Pbitmap *ample1;) s1 W# S! M" b- k& V( H m
FILE *fp, *fp1;" G+ |, d7 ]; S, D
BYTE R[1280][853],G[1280][853],B[1280][853];2 F7 z- f! q+ F3 Y. s) P L
long k=0;( B: L2 w! s% ~) j' }
int i,j;5 R H/ Y% |% x$ k& [
char name[20]="try.bmp";//读到新文件的文件名
f7 z2 h* H, D; k7 T! p3 Tfp=fopen("D:\\ample1.bmp","rb");//以二进制打开读文件
( o/ {, N- F$ i. E4 kfp1=fopen(name,"wb");//为写建立一个新文件名+ M9 S. u2 r& ~; l# p4 ^ ]6 Y7 m
if(! (ample1=new bitmap)){0 ~: b. G9 M- }2 ?( u/ h6 E; y
cout<<"error"<<endl;return 0;
8 v/ E, [, [- r* k% A}
2 {& L9 Z8 v% r( ^$ D8 {/ r5 selse
, p6 M# E: e9 ?, @+ o1 q9 s' d{4 X. V- p7 L* O: b" I
fread(ample1,sizeof(bitmap),1,fp);" N1 j+ K9 Z- I! O) T5 w
fwrite(ample1,sizeof(bitmap),1,fp1);+ B' }$ h) W9 f" h
cout<<"********位图文件头格式:********"<<endl;
1 ~- Q$ ^1 L6 [cout<<"位图文件的类型"<<ample1 -> bmfheader.bfType[0]<<ample1 -> bmfheader.bfType[1]<<endl;
* `" S7 |2 }7 S* a$ ?- ^cout<<"位图文件的大小"<<Ary2DW(ample1 -> bmfheader.bfSize)<<"字节"<<endl;
; z% q' S# S& g- v% ccout<<"********以下是图像数据区********"<<endl;
& f, a9 W3 D& @; N5 g5 ~//指定像素点,以16进制输出BGR值
# c) D. F. J+ r/ icout<<"像素点B通道的值"<<hex<<int (ample1 -> bitmapdata[0])<<endl;
, I0 L% F9 G, hcout<<"像素点G通道的值"<<hex<<int (ample1 -> bitmapdata[1])<<endl;
0 G! @7 W: P0 U. d' x7 ]cout<<"像素点R通道的值"<<hex<<int (ample1 -> bitmapdata[2])<<endl;
2 I4 R: c" F; D/ e# c5 i+ ^* _( C& s//将图像区数据读入 R、G、B三个数组5 k' e6 \3 @3 E# I, x a
for(i=1280; i>=0; i--)
4 _% g8 Q7 f* M" s) {7 wfor(j=0; j<853; j++) ' I: l: W; D, |5 R' P
{2 A! k1 S+ Y% r1 ~
B[i][j]=ample1 -> bitmapdata[k++];
5 l3 F3 n4 y/ W& {2 x( @G[i][j]=ample1 -> bitmapdata[k++];
+ j" b; x# v0 _, bR[i][j]=ample1 -> bitmapdata[k++];1 X* z8 `9 v0 D3 s
}. O/ I( b+ I- ~- g* Z1 O
//检查是否将图像数据读入数组' g# x5 R) y$ }
cout<<"********以下是内存数组数据********"<<endl;, d8 K( c" p: ?5 ~+ ^$ L( { |
cout<<"第一排第一个像素点B通道的值"<<int (B[0][0])<<endl;8 S! ^* |# F% l% A, J& S- Y
cout<<"最后一排第一个像素点R通道的值"<<int (R[1280][0])<<endl;
( y4 d+ C; X9 vreturn 1;; v% [8 I6 r# d, B) P; ~
}
) g5 R. L. P' [2 W7 Gdelete ample1;# I- }7 ~ _: B' V% C
fclose(fp);
3 V# ^2 g& T2 H, B2 V: h+ dfclose(fp1);0 l" A* N) g9 D6 \$ k
} |
zan
|