为了账号安全,请及时绑定邮箱和手机立即绑定

怎么用C语言中的fopen函数打开bmp格式的图像文件?

怎么用C语言中的fopen函数打开bmp格式的图像文件?

C#
RISEBY 2019-02-06 10:10:03
怎么用C语言中的fopen函数打开bmp格式的图像文件
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

1.图片也是属于文件类型的一种,图片属于二进制文件。使用fopen函数的二进制模式“rb”就可以打开。2.例程:

1234567891011121314151617181920212223242526272829303132333435    #include <stdlib.h>    #include <stdio.h>    int main ()    {        FILE * fpPhoto, * fpText, * fpTarget ;        int     iRead ;        char    szBuf[100] ;                   printf ("请输入第一个文件名(jpg):\n") ;        gets (szBuf) ;        fpPhoto = fopen (szBuf, "rb") ;        printf ("请输入第二个文件名(txt):\n") ;        gets (szBuf) ;        fpText = fopen (szBuf, "rb") ;        printf ("请输入目的文件名(jpg):\n") ;        gets (szBuf) ;        fpTarget = fopen (szBuf, "wb") ;               if (!fpPhoto || !fpText || !fpTarget)        {            printf ("打开文件失败!\n") ;            system("pause") ;            return -1 ;        }               while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpPhoto)) > 0)            fwrite (szBuf, 1, iRead, fpTarget) ;        while ((iRead = fread (szBuf, 1, sizeof (szBuf), fpText)) > 0)            fwrite (szBuf, 1, iRead, fpTarget) ;               fclose (fpPhoto) ;        fclose (fpText) ;        fclose (fpTarget) ;        return 0 ;    }


查看完整回答
反对 回复 2019-03-14
?
芜湖不芜

TA贡献1796条经验 获得超7个赞

跳过BITMAPFILEHEADER..
读取BITMAPINFOHEADER
判断bitCount,确定是否有颜色表。
有颜色表就读取颜色表,没有的话位图数据就在BITMAPINFOHEADER后面。
位图数据的大小通过BITMAPINFOHEADER得出。

查看完整回答
反对 回复 2019-03-14
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

fopen看到的文件都是字节流。
你可以和打开任何文件一样打开bmp,但你独到的是字节流。

FILE *fp = NULL;
fp = fopen("xxx.bmp", "r");
if(fp == NULL)
return;

用十六进制的形式打开来,然后用比较工具比较


查看完整回答
反对 回复 2019-03-14
  • 3 回答
  • 0 关注
  • 1971 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信