一、图像详细信息

1.在windows下,点击图像,右键属性,详细信息里面,就可以查看该图像的具体信息,如水平分辨率,分辨率,宽度,高度等,如下图:

2.这此信息对于做图像处理是很有用处的,我一直在用OpenCV做相关的图像处理,但查了文档,好像OpenCV没有获取这些信息相关的函数,OpenCV可以获取图像的位深度,但对位深度是40的图像,OpenCV获取的并不准确。那么只能借助于别的工具库,比如GDI+ 或者是EXIV2,我这里用的是EXIV2。
3.我的编程环境是VS2015,WIN10 64,可以从我上传的资源下载编译好的EXIV2库。

二、EXIV2

1.下载地址https://www.exiv2.org/,进去后下载已编译好的msvc64库,或者下载源码自己Cmake也可以。
2.把lib和include加到工程的相关目录下,把bin加到系统环境变量里面,然后在附加依赖项里面加上lib的文件名。

三、测试源码

#include <exiv2/exiv2.hpp>
#include <iostream>
#include <string>std::string FindExifKey(Exiv2::ExifData &ed, std::string key)
{Exiv2::ExifKey tmp = Exiv2::ExifKey(key);Exiv2::ExifData::iterator pos = ed.findKey(tmp);if (pos == ed.end()){return "Unknow";}return pos->value().toString();
}int main(void)
{//输入的图像路径std::string image_path = "5.JPG";static std::unique_ptr<Exiv2::Image> image = Exiv2::ImageFactory::open(image_path);//尽量别这么写if (image.get() == 0){std::cout << "Read Exif Error." << std::endl;return -1;}//读取照片的exif信息  image->readMetadata();Exiv2::ExifData ed = image->exifData();//得到exif信息  if (ed.empty()){std::cout << "Not Find ExifInfo" << std::endl;return -1;}std::cout << "版权 :" << FindExifKey(ed, "Exif.Image.Copyright") << std::endl;std::cout << "创作人  :" << FindExifKey(ed, "Exif.Image.Artist") << std::endl;std::cout << "相机品牌    :" << FindExifKey(ed, "Exif.Image.Make") << std::endl;std::cout << "相机型号  :" << FindExifKey(ed, "Exif.Image.Model") << std::endl;std::cout << "镜头型号 :" << FindExifKey(ed, "Exif.Photo.LensModel") << std::endl;std::cout << "镜头序列号    :" << FindExifKey(ed, "Exif.Photo.LensSerialNumber") << std::endl;std::cout << "ISO   :" << FindExifKey(ed, "Exif.Photo.ISOSpeedRatings") << std::endl;std::cout << "光圈 :" << FindExifKey(ed, "Exif.Photo.FNumber") << std::endl;std::cout << "焦距 :" << FindExifKey(ed, "Exif.Photo.FocalLength") << std::endl;std::cout << "快门 :" << FindExifKey(ed, "Exif.Photo.ExposureTime") << std::endl;std::cout << "拍摄时间  :" << FindExifKey(ed, "Exif.Image.DateTime") << std::endl;std::cout << "闪光灯   :" << FindExifKey(ed, "Exif.CanonCs.FlashMode") << std::endl;std::cout << "水平分辨率  :" << FindExifKey(ed, "Exif.Image.XResolution") << std::endl;std::cout << "垂直分辨率  :" << FindExifKey(ed, "Exif.Image.YResolution") << std::endl;std::cout << "照片尺寸   :" << FindExifKey(ed, "Exif.Photo.PixelYDimension") << " x " << FindExifKey(ed, "Exif.Photo.PixelXDimension") << std::endl;return 0;
}

运行结果:

使用Exiv2读取图像属性的详细信息相关推荐

  1. 用Python读取照片拍摄的详细信息(拍摄时间、地址等)

    前言   其实咱们平时拍摄的照片里隐藏了大量的私密信息,例如:拍摄时间.极其精确的GPS信息等.接下来尝试用python脚本分析照片,获取照片原图的拍摄信息. 1.准备条件   pip install ...

  2. windows下更改应用程序属性的详细信息

    背景:我常用的时间管理软件ManicTime是根据exe属性里的产品名称来区分不同程序的.然后最近我打了几个不同的RPGMaker做出来的小游戏,发现这些个程序清一色的都没有设置"产品名称& ...

  3. python获取mp3音频数据,python 读取音频文件的详细信息

    有一项测试的需求是判断录像是否和预期一致,检查项是:分辨率.录像时长等内容 文件的详细信息.png os模块有一个stat()方法 st_mode: inode 保护模式 st_ino: inode ...

  4. pythonopencv读取图像属性_2、OpenCV Python 图像属性获取

    __author__ = "WSX" import cv2 as cv import numpy as np image = cv.imread("1.JPG" ...

  5. OpenCV+python:读取图片和视频详细信息

    1,源代码 import cv2 as cv import numpy as npdef video_demo(): #定义读取视频信息的函数capture = cv.VideoCapture(0) ...

  6. Go编译的exe程序设置图标和右键属性的详细信息

    下载安装MinGW MinGW Installation Manager下载地址:https://osdn.net/projects/mingw/releases/ 安装完成后运行选择Basic Se ...

  7. Windows 技术篇 - 如何查看cpu支持的指令集、型号、属性等详细信息,使用cpu-z工具查看处理器、内存、显卡、主板、缓存、SPD信息方法

    好工具推荐!!! 由于最近在研究 cpu 的指令集和操作系统,所以发现了工具:CPU-Z 非常的好用,非常的专业!!! 获取方式: 小蓝枣的csdn资源仓库 工具目录如下: 使用效果图: 喜欢的点个赞 ...

  8. 通过Exiv2读取照片的Exif信息获取GPS,焦距等信息

    这里简单介绍一下如何通过开源C++工具包Exiv2读取图片中的属性信息 其实做这项工作之前也想偷懒百度一下的,大都是Java写的安卓的 ExifInterface 类,这和我的工作扯不上一点关系啊,最 ...

  9. 使用FFmpeg设置视频文件的详细信息

    文章目录 1. 按 2. 指令 1. 按 对于mp4文件,目前已测试在Windows10上设置后支持显示的的详细信息有:标题(title).备注(comment).流派(genre).作曲者(comp ...

最新文章

  1. 思科发布安全大数据分析架构 OpenSOC
  2. 计算机系统基础 南京大学,计算机系统基础(一):程序的表示、转换与链接
  3. os模块中的shutil的使用方式与方法
  4. 用 Flink 取代 Spark Streaming,知乎实时数仓架构演进【推荐】
  5. URL模块之parse方法
  6. python中参数传递_python中参数传递
  7. html tab与jQuery,使用jquery实现div的tab切换实例代码
  8. C++ set insert的返回值
  9. ASP.NET企业开发框架IsLine FrameWork系列之十--ExceptionProcessProvider异常框架(下)
  10. VC下几种转换为UNICODE字符串的方法
  11. C++ public、protected、private 继承方式的区别
  12. 成功女性处世十大秘诀
  13. Flutter入门系列-VideoPlayer在列表使用
  14. ssm三大框架的优缺点
  15. nopCommerce 3.9 大波浪系列 之 汉化-Roxy Fileman
  16. 安装Mysql5.7(64位)安装包及教程全
  17. 《模拟电子技术基础》课程笔记(九)——互补对称式功率放大电路
  18. 南大小百合 计算机,是我从南大小百合里搜集的。已经编辑过了
  19. 使用rails Devise
  20. 【前端】ionic--星级评价半颗星实现方法

热门文章

  1. 面试题整理19 矩阵Z字形扫描
  2. c++ DirectShow播放任意格式的视频
  3. A Complete Tutorial on Tree Based Modeling from Scratch (in R Python)
  4. CNN应用之基于Overfeat的物体检测-2014 ICLR-未完待续
  5. HTML input type 输入类型
  6. 高等数学:第六章 定积分的应用(1)定积分的应用 平面图形的面积 立体体积
  7. 用 Python 和 OpenCV 检测和跟踪运动对象
  8. 数字图像处理:第九章 线性系统、卷积、傅立叶变换
  9. 云计算的学习路线是什么?云计算的应用场景分析
  10. JS第三方中间件的延伸