用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

图片文件的大小,分辨率,像素,这些我都可以获取到,但生成为表格中,恕我*为力。来自:求助得到的回答

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com