| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 567 人关注过本帖
标题:一图像处理文件 在VC里为什么运行不成功??
只看楼主 加入收藏
sandy0701
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-11
收藏
 问题点数:0 回复次数:0 
一图像处理文件 在VC里为什么运行不成功??
#include <bitset>
#include <iostream>
using namespace std;
#include <stdio.h>
#include <conio.h>

void main()
{   
    bitset<8> A; //设置一个8位长的位数组以便存储图中每一字节的数据
    int a[134],num=1;  //数组用于存储此图132字节的数据
    for(int i=0;i<=133;i++) a[i]=0; //初始化a
       FILE *fp,*fq,*fr;    
       fp=fopen("c://000//bmp//bmp-1.bmp","rb");
    fq=fopen("c://000//bmp//bmp-1change.bmp","wb");
    fr=fopen("c://000//bmp//bmp-1.txt","w");
    while((!feof(fp))&&num<63) //此步用于将其BMP格式的头直接赋给指针fq
    {
        char ch=fgetc(fp);
        fputc(ch,fq);
        num++;
    }
    fseek(fp,63L,0); //实际数据距文件头有62字节的偏移
    fseek(fq,63L,0);
    num=1;
    while((!feof(fp))&&num<133) //将位图的实际数据存在a中以便后面转换所用
    {  
       a[num]=fgetc(fp);
       num++;
    }
    i=0;
    for(int k=num-2;k>=1;k--) //位图数据的存储与看到的图的样式的关系是上下颠倒的所以a从后往前
    {   i++;
        if(i!=0 && i%4==0)
        {
           for(int j=0;j<=3;j++)
           {
               bitset<8> A(a[k+j]);
               cout<<A;
               for(int l=7;l>=0;l--)//将位图的数据存为文本文件
               {
                   if(A.at(l)==true) fprintf(fr,"%d",1);
                   else fprintf(fr,"%d",0);
               }
               if(A.at(0)==true) A.set(0,false); //如果这个字节的最后一位为1把它变为0
               a[k+j]=A.to_ulong();  
           }
           fprintf(fr,"\n");
           cout<<"\n";
        }
    }
    for(i=1;i<=132;i++)  //按读取的方法和顺序再存回去
        fputc(a[i],fq);
   fclose(fp);
   fclose(fq);
   fclose(fr);
   cout<<"任击一键退出!"<<endl;
   getch();
}
搜索更多相关主题的帖子: 图像处理 文件 运行 
2008-12-03 20:13
快速回复:一图像处理文件 在VC里为什么运行不成功??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.048496 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved