Board logo

标题: [文件操作] bat能不能读取某张图片的dpi值? [打印本页]

作者: wh123wh123    时间: 2024-6-2 23:46     标题: bat能不能读取某张图片的dpi值?

本帖最后由 wh123wh123 于 2024-6-2 23:52 编辑

bat能不能读取某张图片的dpi值?如何实现?
作者: Batcher    时间: 2024-6-3 08:59

回复 1# wh123wh123


    请选一张图片作为例子上传到网盘,说下你需要获取哪个属性?
作者: newswan    时间: 2024-6-3 09:29

http://www.bathome.net/thread-57423-1-1.html
已有
作者: buyiyang    时间: 2024-6-3 10:01

可以用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.     )
复制代码

作者: wh123wh123    时间: 2024-6-3 10:05

回复 2# Batcher



   
作者: wh123wh123    时间: 2024-6-3 10:09

回复 4# buyiyang


    只需要读取指定某一张图片的值,也就是指定文件名,不是批量
作者: wh123wh123    时间: 2024-6-3 10:15

回复 4# buyiyang

'/i' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
请按任意键继续. . .
作者: aloha20200628    时间: 2024-6-3 11:46

本帖最后由 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();
复制代码

作者: wh123wh123    时间: 2024-6-3 14:02

本帖最后由 wh123wh123 于 2024-6-3 14:03 编辑
回复  wh123wh123

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



    没看明白怎么使用这段代码,abc.jpg图片路径放到哪?或者怎么调用这段代码进行获得那两个值?
作者: aloha20200628    时间: 2024-6-3 14:22

本帖最后由 aloha20200628 于 2024-6-3 14:28 编辑

回复 9# wh123wh123

直接在cmd窗口命令行执行 test.bat "d:\jpg\abc.jpg" 即可
或直接将所选图片文件拖给 test.bat 亦可
8楼代码已更新,以便结尾可停看输出结果...

作者: Five66    时间: 2024-6-3 16:15

只有一张,右键属性查看不就行了




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2