用bat怎样批量提取图片的分辨率或像素大小、文件大小,大神们帮帮忙,谢谢了。
发布网友
发布时间:2022-04-23 22:51
我来回答
共3个回答
热心网友
时间:2023-10-12 18:26
复制粘贴到记事本,另存为xx.bat,编码选ANSI,跟要处理的文件放一起运行
<# :
cls
@echo off
rem 提取图片的文件大小、宽高尺寸和分辨率
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
echo;%#% +%$%%$%/%@% %z%
pause
exit
#>
$path=$args[0];
$outfile='.\info.csv';
$ext=@('.jpg', '.jpeg', '.bmp', '.png', '.gif');
function formatsize($n){
$m='';
if($n -ge 1073741824){
$m=($n/1073741824).toString('0.00')+' GB';
}else{
if($n -ge 1048576){
$m=($n/1048576).toString('0.00')+' MB';
}else{
if($n -ge 1024){
$m=($n/1024).toString('0.00')+' KB';
}else{
$m=$n.toString()+' B';
};
};
};
return $m;
};
$outfile=$outfile -replace '^\.',$path.trimend('\');
[System.Collections.ArrayList]$s=@();
Add-Type -AssemblyName 'System.Drawing';
$files=@(dir -liter $path|?{($ext -contains $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
$img=[System.Drawing.Image]::FromFile($files[$i].FullName);
$line='"'+$files[$i].Name+'",'+(formatsize $files[$i].length)+',';
$line+=$img.Width.toString()+'x'+$img.Height.toString()+','+$img.HorizontalResolution.toString();
[void]$s.add($line);
write-host $line;
$img.Dispose();
};
[IO.File]::WriteAllLines($outfile, $s, [Text.Encoding]::Default);
热心网友
时间:2023-10-12 18:27
是有软件可以直接输出的,添加文件大小支持上百Mb
用软件批量获取图片信息windows系统版本
第一步、导入图片
第二步、勾选要提取的信息
第三步、一键提取
第四步、导出表格
提取包含(分辨率、高度、宽度、尺寸、大小)根据要的提取就好了
热心网友
时间:2023-10-12 18:27
图片文件的大小,分辨率,像素,这些我都可以获取到,但生成为表格中,恕我*为力。来自:求助得到的回答