[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

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

bat能不能读取某张图片的dpi值?如何实现?

回复 1# wh123wh123


    请选一张图片作为例子上传到网盘,说下你需要获取哪个属性?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

TOP

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

TOP

回复 2# Batcher



   

TOP

回复 4# buyiyang


    只需要读取指定某一张图片的值,也就是指定文件名,不是批量

TOP

回复 4# buyiyang

'/i' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
请按任意键继续. . .

TOP

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

TOP

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

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



    没看明白怎么使用这段代码,abc.jpg图片路径放到哪?或者怎么调用这段代码进行获得那两个值?

TOP

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

回复 9# wh123wh123

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

TOP

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

TOP

返回列表