exif.js获取图片原始信息的实现

 更新时间:2025年05月08日 11:32:14   作者:前端小白_50332439  
exif-js 是一个JavaScript库,用于读取图片的EXIF信息,本文就来介绍一下exif.js获取图片原始信息的实现,感兴趣的可以了解一下

前言

Exif.js 提供了 JavaScript 读取图像的原始数据的功能扩展,例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据。

一、Exif.js 是什么?

exif-js 是一个JavaScript库,用于读取图片的EXIF信息。EXIF信息包括拍摄时间、相机型号、焦距等元数据。EXIF 标准仅适用于.jpg.tiff图像。

注意:exif 数据主要来自拍摄的照片,多用于移动端开发,此插件兼容主流浏览器,IE10 以下不支持。

二、使用步骤

1.npm安装 

npm install exif-js --save    

2.CDN引入(GitHub地址

<script src="https://cdn.jsdelivr.net/npm/exif-js"></script>

3.读取图片的EXIF信息

代码如下(示例):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>EXIF Demo</title>
    <script src="https://cdn.jsdelivr.net/npm/exif-js"></script>
</head>
<body>
    <input type="file" id="upload" name="image">
    <script>
        document.getElementById('upload').addEventListener('change', function(e) {
            var file = e.target.files[0]; // 获取文件对象
            if (!file.type.match('image.*')) {
                alert('Please select an image file.');
                return;
            }
            var reader = new FileReader();
            reader.onload = function(event) {
                var data = event.target.result; // 图片的base64编码数据
                EXIF.getData(data, function() { // 使用EXIF.js读取数据
                    var make = EXIF.getTag(this, "Make"); // 获取相机制造商信息
                    var model = EXIF.getTag(this, "Model"); // 获取相机型号信息
                    var date = EXIF.getTag(this, "DateTime"); // 获取拍摄日期和时间
                    console.log("Camera Make: " + make);
                    console.log("Camera Model: " + model);
                    console.log("Date & Time: " + date);
                });
            };
            reader.readAsDataURL(file); // 读取文件内容为DataURL
        });
    </script>
</body>
</html>

三、API方法及属性

API说明
EXIF.getData(img, callback)

获取图像的数据

能兼容尚未支持提供 EXIF 数据的浏览器获取到元数据。

EXIF.getTag(img, tag)获取图像的某个数据
EXIF.getAllTags(img)获取图像的全部数据,值以对象的方式返回
EXIF.pretty(img)获取图像的全部数据,值以字符串的方式返回
属性说明
ExifVersionExif 版本
FlashPixVersionFlashPix 版本
ColorSpace色域、色彩空间
PixelXDimension图像的有效宽度
PixelYDimension图像的有效高度
ComponentsConfiguration图像构造
CompressedBitsPerPixel压缩时每像素色彩位
MakerNote制造商设置的信息
UserComment用户评论
RelatedSoundFile关联的声音文件
DateTimeOriginal创建时间
DateTimeDigitized数字化创建时间
SubsecTime日期时间(秒)
SubsecTimeOriginal原始日期时间(秒)
SubsecTimeDigitized原始日期时间数字化(秒)
ExposureTime曝光时间
FNumber光圈值
ExposureProgram曝光程序
SpectralSensitivity光谱灵敏度
ISOSpeedRatings感光度
OECF光电转换功能
ShutterSpeedValue快门速度
ApertureValue镜头光圈
BrightnessValue亮度
ExposureBiasValue曝光补偿
MaxApertureValue最大光圈
SubjectDistance物距
MeteringMode测光方式
Lightsource光源
Flash闪光灯
SubjectArea主体区域
FocalLength焦距
FlashEnergy闪光灯强度
SpatialFrequencyResponse空间频率反应
FocalPlaneXResolution焦距平面X轴解析度
FocalPlaneYResolution焦距平面Y轴解析度
FocalPlaneResolutionUnit焦距平面解析度单位
SubjectLocation主体位置
ExposureIndex曝光指数
SensingMethod图像传感器类型
FileSource源文件
SceneType场景类型(1 == 直接拍摄)
CFAPatternCFA 模式
CustomRendered自定义图像处理
ExposureMode曝光模式
WhiteBalance白平衡(1 == 自动,2 == 手动)
DigitalZoomRation数字变焦
FocalLengthIn35mmFilm35毫米胶片焦距
SceneCaptureType场景拍摄类型
GainControl场景控制
Contrast对比度
Saturation饱和度
Sharpness锐度
DeviceSettingDescription设备设定描述
SubjectDistanceRange主体距离范围
InteroperabilityIFDPointer
ImageUniqueID图像唯一ID
ImageWidth图像宽度
ImageHeight图像高度
BitsPerSample比特采样率
Compression压缩方法
PhotometricInterpretation像素合成
Orientation拍摄方向
SamplesPerPixel像素数
PlanarConfiguration数据排列
YCbCrSubSampling色相抽样比率
YCbCrPositioning色相配置
XResolutionX方向分辨率
YResolutionY方向分辨率
ResolutionUnit分辨率单位
StripOffsets图像资料位置
RowsPerStrip每带行数
StripByteCounts每压缩带比特数
JPEGInterchangeFormatJPEG SOI 偏移量
JPEGInterchangeFormatLengthJPEG 比特数
TransferFunction转移功能
WhitePoint白点色度
PrimaryChromaticities主要色度
YCbCrCoefficients颜色空间转换矩阵系数
ReferenceBlackWhite黑白参照值
DateTime日期和时间
ImageDescription图像描述、来源
Make生产者
Model型号
Software软件
Artist作者
Copyright版权信息
GPSVersionIDGPS 版本
GPSLatitudeRef南北纬
GPSLatitude纬度
GPSLongitudeRef东西经
GPSLongitude经度
GPSAltitudeRef海拔参照值
GPSAltitude海拔
GPSTimeStampGPS 时间戳
GPSSatellites测量的卫星
GPSStatus接收器状态
GPSMeasureMode测量模式
GPSDOP测量精度
GPSSpeedRef速度单位
GPSSpeedGPS 接收器速度
GPSTrackRef移动方位参照
GPSTrack移动方位
GPSImgDirectionRef图像方位参照
GPSImgDirection图像方位
GPSMapDatum地理测量资料
GPSDestLatitudeRef目标纬度参照
GPSDestLatitude目标纬度
GPSDestLongitudeRef目标经度参照
GPSDestLongitude目标经度
GPSDestBearingRef目标方位参照
GPSDestBearing目标方位
GPSDestDistanceRef目标距离参照
GPSDestDistance目标距离
GPSProcessingMethodGPS 处理方法名
GPSAreaInformationGPS 区功能变数名
GPSDateStampGPS 日期
GPSDifferentialGPS 修正

总结

到此这篇关于exif.js获取图片原始信息的实现的文章就介绍到这了,更多相关exif.js获取图片信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 封装了一个自动生成渐变字的JS类(clip)

    封装了一个自动生成渐变字的JS类(clip)

    之前做过一个生成渐变字体的简单演示今天闲着没事就把这个功能完善了,把JS代码封装成一个类,载入页面就可以使相应的HTML元素内部的字体产生渐变色。
    2008-11-11
  • 使用JavaScript生成罗马字符的实例代码

    使用JavaScript生成罗马字符的实例代码

    这篇文章主要介绍了使用JavaScript生成罗马字符的实例代码,需要的朋友可以参考下
    2018-06-06
  • bootstrap 设置checkbox部分选中效果

    bootstrap 设置checkbox部分选中效果

    本篇文章主要介绍了bootstrap 设置checkbox部分选中效果,主要涉及到js各个方面的内容,对于bootstrap设置checkbox选中效果感兴趣的朋友可以参考一下吧
    2017-04-04
  • js纯前端实现腾讯cos文件上传功能的示例代码

    js纯前端实现腾讯cos文件上传功能的示例代码

    这篇文章主要介绍了vue纯前端实现腾讯cos文件上传功能的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • 微信小程序实现一键登录

    微信小程序实现一键登录

    这篇文章主要为大家详细介绍了微信小程序实现一键登录,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • JS如何获取指定范围内的随机数含小数

    JS如何获取指定范围内的随机数含小数

    这篇文章主要介绍了JS如何获取指定范围内的随机数含小数问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • JS中的六种继承方式以及优缺点总结

    JS中的六种继承方式以及优缺点总结

    JS作为面向对象的弱类型语言,继承也是其非常强大的特性之一,那么如何在JS中实现继承呢?下面这篇文章主要给大家介绍了关于JS中六种继承方式以及优缺点的相关资料,需要的朋友可以参考下
    2021-10-10
  • 网站接入QQ登录的两种方法

    网站接入QQ登录的两种方法

    网站接入QQ登录,首先引入授权js文件,这个需要提交申请的,通过之后按照下面的步骤进行操作就可以了
    2014-07-07
  • JavaScript中可选链操作符(?.)的实用指南

    JavaScript中可选链操作符(?.)的实用指南

    在现代前端开发中,高达 68%的 JavaScript 运行时错误源于访问未定义属性,本文将深入解析可选链(?.)如何从根本上解决这一问题,并结合实际场景、底层原理与最佳实践,助你彻底规避TypeError陷阱,需要的朋友可以参考下
    2025-06-06
  • JS DOM实现鼠标滑动图片效果

    JS DOM实现鼠标滑动图片效果

    这篇文章主要为大家详细介绍了JS DOM实现鼠标滑动图片效果,只要将鼠标放上该商品的区域,原本折叠起来的商品便会自动展开,感兴趣的小伙伴们可以参考一下
    2016-03-03

最新评论