# image_dpi_analysis **Repository Path**: SYANANg/image_dpi_analysis ## Basic Information - **Project Name**: image_dpi_analysis - **Description**: A pure JavaScript implementation for analyzing image DPI and physical dimensions, supporting JPG, PNG, TIFF, and BMP formats. - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-09-08 - **Last Updated**: 2026-01-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图片DPI分析器 (Image DPI Analyzer) 一个纯JavaScript实现的图片DPI及物理尺寸识别工具,支持JPG、PNG、TIFF、BMP四种主流图片格式。 ## 功能特性 - 🖼️ **多格式支持**: 支持JPG、PNG、TIFF、BMP四种图片格式 - 📏 **精确测量**: 准确识别图片的DPI值和物理尺寸(厘米) - 🎨 **颜色空间检测**: 识别图片颜色空间(RGB、GRAY、CMYK等) - 📱 **跨平台**: 提供Web版本和UniApp移动端版本 - 🔍 **格式检测**: 自动识别JPEG的不同子格式(JFIF、EXIF、Photoshop等) - ⚡ **纯前端**: 无需服务器,完全在浏览器中运行 ## 项目结构 ``` img_dpi_analysis/ ├── imgParser.js # 核心图片解析库 ├── exif.js # EXIF数据解析库 ├── index.html # Web版本演示页面 ├── pdf.min.js # PDF处理库 ├── pdf.worker.min.js # PDF Worker └── uniapp-file-analyzer/ # UniApp移动端版本 ├── pages/ │ └── index/ │ ├── index.vue # 主页面 │ └── history.vue # 历史记录页面 ├── utils/ │ ├── imgParser.js # 图片解析工具 │ ├── exif.js # EXIF解析工具 │ └── pdfParser.js # PDF解析工具 └── static/ # 静态资源 ``` ## 使用方法 ### Web版本 1. 直接在浏览器中打开 `index.html` 2. 选择或拖拽图片文件 3. 查看解析结果 ### 编程接口 ```javascript // 引入解析器 // // // 仅JPEG EXIF格式需要 // 使用FileReader读取文件为ArrayBuffer const fileReader = new FileReader(); fileReader.onload = function(e) { const arrayBuffer = e.target.result; // 解析图片信息 const result = imgParser.parse(arrayBuffer); console.log('宽度(cm):', result.width); console.log('高度(cm):', result.height); console.log('DPI:', result.dpi); console.log('是否基线JPEG:', result.isBaseline); console.log('颜色空间:', result.colorSpace); }; fileReader.readAsArrayBuffer(file); ``` ### UniApp版本 1. 使用HBuilderX打开 `uniapp-file-analyzer` 目录 2. 运行到相应平台(H5、小程序、App等) ## 支持的图片格式 ### JPEG (.jpg, .jpeg) - **JFIF格式**: 标准JPEG格式,从APP0段读取DPI信息 - **EXIF格式**: 包含EXIF数据的JPEG,需要exif.js库支持 - **Photoshop格式**: Adobe Photoshop保存的JPEG,从APP13段解析DPI ### PNG (.png) - 从pHYs段读取像素密度信息 - 支持每米像素数到DPI的转换 ### TIFF (.tif, .tiff) - 支持Intel(II)和Motorola(MM)字节序 - 从IFD目录解析分辨率信息 - 支持英寸和厘米单位 ### BMP (.bmp) - 从文件头读取像素密度信息 - 支持每米像素数格式 ## 技术实现 - **纯JavaScript**: 使用DataView进行二进制数据解析 - **格式识别**: 通过文件头魔数自动识别图片格式 - **字节序处理**: 正确处理大端序和小端序数据 - **精确计算**: 支持分数形式的DPI值计算 ## 浏览器兼容性 - Chrome 32+ - Firefox 29+ - Safari 8+ - Edge 12+ - 移动端浏览器 ## 开发计划 - [ ] 支持更多图片格式(WebP、AVIF等) - [ ] 添加批量处理功能 - [ ] 优化大文件处理性能 - [ ] 添加图片预览功能 ## 作者信息 **作者**: JuanFaC **邮箱**: nidejuanfaya@163.com ## 许可证 MIT License ## 贡献 欢迎提交Issue和Pull Request来改进这个项目,如果对您有帮助,麻烦右上角点击一个 Star 吧! ## 更新日志 ### v1.0.0 - 初始版本发布 - 支持JPG、PNG、TIFF、BMP四种格式 - 支持 PDF 尺寸和页码数解析 - 实现Web版本和UniApp版本 - 支持多种JPEG子格式识别