找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 19636|回复: 10

[文件操作] bat能不能读取某张图片的dpi值?

[复制链接]
发表于 2024-6-2 23:46:27 | 显示全部楼层 |阅读模式
本帖最后由 wh123wh123 于 2024-6-2 23:52 编辑

bat能不能读取某张图片的dpi值?如何实现?
发表于 2024-6-3 08:59:55 | 显示全部楼层
回复 1# wh123wh123


    请选一张图片作为例子上传到网盘,说下你需要获取哪个属性?
发表于 2024-6-3 09:29:29 | 显示全部楼层
发表于 2024-6-3 10:01:14 | 显示全部楼层
可以用bat直接读取解析文件头,适用于jpg编码:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%i in (*.jpg) do (
  4.     set "dpi="
  5.     call :getDPI "%%i"
  6.     if defined dpi echo,%%i:        !dpi!dpi
  7.     )
  8. del $temp
  9. pause&exit

  10. :getDPI
  11. certutil -encodehex -f %1 $temp >nul
  12. for /f "tokens=2-5,8-12,15-17" %%a in ($temp) do (
  13.     if /i not "%%a%%b%%c%%d"=="ffd8ffe0" (echo,文件编码不符&goto :eof)
  14.     if /i not "%%e%%f%%g%%h%%i"=="4a46494600" (echo,文件编码不符&goto :eof)
  15.     if %%j equ 0 set /a "dpi=96"
  16.     if %%j equ 1 set /a "dpi=0x%%k%%l"
  17.     if %%j equ 2 set /a "dpi=0x%%k%%l*127/50"
  18.     goto :eof
  19.     )
复制代码
 楼主| 发表于 2024-6-3 10:05:26 | 显示全部楼层
回复 2# Batcher



   
 楼主| 发表于 2024-6-3 10:09:29 | 显示全部楼层
回复 4# buyiyang


    只需要读取指定某一张图片的值,也就是指定文件名,不是批量
 楼主| 发表于 2024-6-3 10:15:53 | 显示全部楼层
回复 4# buyiyang

'/i' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
请按任意键继续. . .
发表于 2024-6-3 11:46:11 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-6-3 14:23 编辑

回复 1# wh123wh123

以下代码存为test.bat运行,命令行参数指定目标图片文件,如》test.bat "abc.jpg"
屏显输出结果》水平dpi / 垂直dpi

  1. @set @x=1 //&(if "%~1" neq "" cscript /e:jscript "%~f0" "%~1") &pause&exit/b
  2. wi = WSH.createobject("wia.imagefile"), v = WSH.arguments;
  3. wi.loadfile(v(0)), WSH.echo(wi.horizontalresolution+'/'+wi.verticalresolution), WSH.quit();
复制代码
 楼主| 发表于 2024-6-3 14:02:45 | 显示全部楼层
本帖最后由 wh123wh123 于 2024-6-3 14:03 编辑
回复  wh123wh123

以下代码存为test.bat运行,命令行参数指定目标图片文件,如》test.bat "abc.jpg"
屏 ...
aloha20200628 发表于 2024-6-3 11:46



    没看明白怎么使用这段代码,abc.jpg图片路径放到哪?或者怎么调用这段代码进行获得那两个值?
发表于 2024-6-3 14:22:28 | 显示全部楼层
本帖最后由 aloha20200628 于 2024-6-3 14:28 编辑

回复 9# wh123wh123

直接在cmd窗口命令行执行 test.bat "d:\jpg\abc.jpg" 即可
或直接将所选图片文件拖给 test.bat 亦可
8楼代码已更新,以便结尾可停看输出结果...
发表于 2024-6-3 16:15:05 | 显示全部楼层
只有一张,右键属性查看不就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 22:19 , Processed in 0.021461 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表