# 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子格式识别