该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

/*

** 这个程序是读取jpg图像的

** 后续加上jpg图像打开和存放

*/ #include

#include

#include

#include

#include #define SOI 0xD8 //文件头

#define EOI 0xD9 //文件尾

#define APP0 0xE0 //定义交换格式和图像识别信息

#define SOF0 0xC0 //帧开始(标准 JPEG)

#define DQT 0xDB //定义量化表

#define DHT 0xC4 //定义 Huffman 表(霍夫曼表)

#define SOS 0xDA // 扫描行开始

#define DRI 0xDD //定义重新开始间隔

#define COM 0xFE //注释 unsigned short jpgWidth; //图像的宽

unsigned short jpgHeight; //图像的高

unsigned char bitDepth; //图像类型,每像素位数

unsigned short jpgXpelsPerMeter; //水平分辨率

unsigned short jpgYpelsPerMeter; //垂直分辨率

unsigned char SOF_find=0; char readPath[100]; //图像路径

unsigned char CurrentByte; //当前字节

unsigned short CurrentWord; //当前word

unsigned int BytePos; //当前字节的位置 bool readjpg(char *jpgName); //读取路径

void showjpg(); //显示

void GetJpgSize(FILE *fp); //获取大小 /****************************分割线**************************************/

bool readjpg(char *jpgName)

{

unsigned char Flag_1,Flag_2; //文件头 FFD8

unsigned short Xdensity,Ydensity;

/*unsigned char SOS_find=0;

unsigned int FileLength;

unsigned char Length;*/

//二进制读方式打开指定的图像文件

FILE *fp;

fp=fopen(jpgName,"rb");

if(fp==0)

{

perror("jpgName"); //提示错误信息

getch();

exit(EXIT_FAILURE); //出现错误,终止程序。

} /*

判断文件类型是否为JPG

检查第1, 2字节

*/

fread(&Flag_1,1,1,fp);

fseek(fp,1L,0);

fread(&Flag_2,1,1,fp);

if(( Flag_1 != 0xff) || (Flag_2 != 0xd8) )

{

printf("Not a jpg file?? (SOI)\n");

exit(EXIT_FAILURE);

}

//开始寻找开始位置

GetJpgSize(fp); fclose(fp);

return 1;

} void showjpg()

{

//窗口大小为图片大小

initgraph(jpgWidth,jpgHeight+40);

setbkcolor(WHITE);

setcolor(BLACK);

cleardevice(); setfont(16, 8, "宋体");

char width[5],height[5];

sprintf(width, "%d",jpgWidth);

sprintf(height, "%d",jpgHeight); outtextxy(0,0,"图像的宽:");

outtextxy(10+textwidth("图像的宽:"),0,width); outtextxy(jpgWidth/2,0,"图像的高:");

outtextxy(jpgWidth/2 + 10 + textwidth("图像的高"),0,height); IMAGE img; // 定义 IMAGE 对象

loadimage(&img, readPath); //读取图片到 img 对象中

putimage(0, 40, &img); // 在坐标 (0, 0) 位置显示 IMAGE 对象 getch();

closegraph();

} //获取照片尺寸大小

void GetJpgSize(FILE *fp)

{ unsigned char HeightH;

unsigned char HeightL;

unsigned char WidthH;

unsigned char WidthL;

unsigned char BitDepth;

while(!SOF_find)

{

CurrentByte=fgetc(fp);

if(CurrentByte!=0xFF)

continue;

//发现标记符

CurrentByte=fgetc(fp);

switch(CurrentByte)

{

case APP0: break;

case SOF0:

fseek(fp,2L,1); BitDepth=fgetc(fp); //图像高的高位和低位

HeightH=fgetc(fp); HeightL=fgetc(fp); //图像宽的高位和低位

WidthH=fgetc(fp); WidthL=fgetc(fp); SOF_find=1;

break;

default:

break;

}

}

jpgHeight=HeightH * 256 + HeightL;

jpgWidth=WidthH * 256 + WidthL; } void main()

{

printf("输入图像的完整路径及文件名:\n");

gets(readPath);

readjpg(readPath);

printf(" bitDepth=%x\n height=%x\n width=%x\n ",bitDepth,jpgHeight,jpgWidth);

printf(" jpgXpelsPerMeter=%x\n jpgYpelsPerMeter=%x\n",jpgXpelsPerMeter,jpgYpelsPerMeter); printf("按任意键显示图像\n");

getch();

showjpg();

}

c语言 遍历.jpg图像,求指导,如何用c语言实现读取*.raw格式图像相关推荐

  1. RAW图像详解及使用Python读取raw格式图像并显示

    一.RAW图像详解 1.1 什么是raw格式图像? RAW在英文中的解释是未处理的.自然状态的,这也就是RAW文件的真谛.RAW图像就是CMOS或者CCD图像感应器将捕捉到 的光源信号转化为数字信号的 ...

  2. 使用Python读取raw格式图像并显示

    整理日期:2020-02-13 整理内容:使用Python读取raw格式图像并显示 代码如下: import cv2 #OpenCV包 import numpy as np# 首先确定原图片的基本信息 ...

  3. c语言读取一个图像文件格式,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

  4. c语言 写出raw文件,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

  5. c语言图片raw保存,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

  6. C语言读取load格式文件,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

  7. C语言读取图像像素坐标,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

  8. C语言读取raw格式图像,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

  9. raw转bmp程序c语言,求指导,如何用c语言实现读取*.raw格式图像

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* ** 这个程序是读取jpg图像的 ** 后续加上jpg图像打开和存放 */ #include #include #include #include ...

最新文章

  1. python3精要(51)-json
  2. #pragma once与#ifndef的区别?
  3. Java中的反射的应用
  4. Java课堂测试01及感想
  5. [bzoj2850]巧克力王国_KD-Tree
  6. STL stack 容器
  7. DFS序--树的问题转化为区间问题
  8. 第2章 数据可视化基础
  9. java项目怎么启动_github上的java项目怎么运行(面向小白)
  10. steamcommunity302怎么用【使用方法】
  11. dvi线支持多少分辨率_dvi接口有哪几种_dvi支持最大分辨率
  12. js清除cookies
  13. 如何在TOMCAT上安装Liferay
  14. 通过Python实现对xls表格按类别统计计数
  15. 为什么在线客服系统很重要
  16. 编程_三大编程思想:POP、OOP、AOP
  17. vue动态面包屑导航
  18. 【Tableau Desktop 企业日常技巧16】Tableau下载和安装ODBC驱动 连接MySQL方法及过程详解
  19. FileSystemWatcher触发多次Change事件的解决办法
  20. Intel 酷睿 i3、i5、i7 CPU 处理器之间有什么区别

热门文章

  1. yum php devel_yum源里找不到 php54w-devel,求可用yum源
  2. python histo 改变 bins 大小_子批次大小python
  3. centos7 界面中文都是方块_Centos 7 项目管理系统部署之Trac(一)
  4. java多线程生产者与消费者问题_java多线程实现生产者与消费者问题
  5. 蓝宝石 470 原版 bios_想怎么玩就怎么玩!改造双BIOS显卡,不再为噪音和性能选择而烦恼...
  6. mq多个消费者消费一个消息_消息中间件——RabbitMQ(五)快速入门生产者与消费者...
  7. 小学5年级计算机考试作文,我的小学老师五年级优秀作文(通用10篇)
  8. MLPrimitive如何添加自定义的Primitive
  9. one-hot与哑变量(dummy variable)的区别
  10. python安装unittest_python 自动化测试 (一):安装 requests,unittest,HTMLTestRunner