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

[文件操作] [已解决]求批处理一批大小均不相同的图片,所有图片上下左右各切掉10%

本帖最后由 crownking1983 于 2020-2-14 14:41 编辑

我这里有四千多张图片,尺寸大小有1920*1080的 有1600*900的 还有1200*900的 甚至还有1692*728这样异形的。

求批处理这一批大小均不相同的图片,所有图片上下左右各切掉10%

我在百度上问过这个问题,有一个好心的高手给我了一个方案。他使用批处理加mogrify.exe批处理命令是 "mogrify -crop +0+0 -crop -0-0 *.jpg" 将0写成上下左右要分别残切的像素数值就可以了

但是他这个批处理命令是批量去掉文件夹内所有图片的指定像素 左X像素上X像素右X像素下X像素 可以实现统一尺寸图片的批处理 但是我的这几千张图不是统一尺寸的 所以到这里跪求高人给一个能所有图片自动按每张图比例的上下左右各切掉10%的批处理方案

跪求了 大神们!

回复 2# went


    啊大神,恕我愚笨,这个不是bat批处理命令对吗?保存为ps1文件后,需要安装什么软件来运行吗?

TOP

回复 2# went


    另外还有,能否放到文件夹外面运行 因为这几千个文件在不同的文件夹里 处理完以后还得放回原文件夹 不然网站里的引用链接就都完了

TOP

回复 6# went


你好大神 我使用了 提示这样的错误 然后使用后也无任何变化 请问是哪里出错了呢?

TOP

回复 8# went


你好大神 我已经保存为ANSI编码形式 运行后也是不行的 和前面的问题相同一模一样 我是不是电脑里少安装了什么软件

TOP

回复 10# went


大神 你说的没错 我的版本是2.0的 可能的确是版本低了 我明天起床下载个5.1版本的吧 谢谢你啊

TOP

回复 10# went


    大神 升级了之后 现在运行提示的是以下内容了。而且 必须要在与图片同级目录下运行。
方法调用失败,因为 [System.IO.FileInfo] 不包含名为“new”的方法。
所在位置 行:6 字符: 71
+     if(Test-Path -LiteralPath $src){$srcFile=[System.IO.FileInfo]::new <<<< (
$src)}else{Write-Host "路径错误";return}
    + CategoryInfo          : InvalidOperation: (new:String) [], RuntimeExcept
   ion
    + FullyQualifiedErrorId : MethodNotFound

方法调用失败,因为 [System.Drawing.Rectangle] 不包含名为“new”的方法。
所在位置 行:13 字符: 45
+     $srcRect=[System.Drawing.Rectangle]::new <<<< ($srcBmp.Width*($left/100),
$srcBmp.Height*($top/100),$tagWidth,$tagHeight) #源裁剪矩形
    + CategoryInfo          : InvalidOperation: (new:String) [], RuntimeExcept
   ion
    + FullyQualifiedErrorId : MethodNotFound

方法调用失败,因为 [System.Drawing.Rectangle] 不包含名为“new”的方法。
所在位置 行:14 字符: 45
+     $tagRect=[System.Drawing.Rectangle]::new <<<< (0,0,$tagWidth,$tagHeight)
#目标矩形
    + CategoryInfo          : InvalidOperation: (new:String) [], RuntimeExcept
   ion
    + FullyQualifiedErrorId : MethodNotFound

方法调用失败,因为 [System.Drawing.Bitmap] 不包含名为“new”的方法。
所在位置 行:15 字符: 41
+     $tagBmp=[System.Drawing.Bitmap]::new <<<< ($tagWidth,$tagHeight) #目标图

    + CategoryInfo          : InvalidOperation: (new:String) [], RuntimeExcept
   ion
    + FullyQualifiedErrorId : MethodNotFound

使用“1”个参数调用“FromImage”时发生异常:“值不能为空。
参数名: image”
所在位置 行:16 字符: 44
+     $g=[System.Drawing.Graphics]::FromImage <<<< ($tagBmp) #画笔
    + CategoryInfo          : NotSpecified: ( [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

不能对值为空的表达式调用方法。
所在位置 行:17 字符: 17
+     $g.DrawImage <<<< ($srcBmp,$tagRect,$srcRect,[System.Drawing.GraphicsUnit
]:ixel)
    + CategoryInfo          : InvalidOperation: (DrawImage:String) [], Runtime
   Exception
    + FullyQualifiedErrorId : InvokeMethodOnNull

不能对值为空的表达式调用方法。
所在位置 行:18 字符: 17
+     $tagBmp.Save <<<< (($srcFile.DirectoryName+"\"+$srcFile.BaseName+"_cut"+$
srcFile.Extension),[System.Drawing.Imaging.ImageFormat]::Jpeg)
    + CategoryInfo          : InvalidOperation: (Save:String) [], RuntimeExcep
   tion
    + FullyQualifiedErrorId : InvokeMethodOnNull

不能对值为空的表达式调用方法。
所在位置 行:20 字符: 20
+     $tagBmp.Dispose <<<< ()
    + CategoryInfo          : InvalidOperation: (Dispose:String) [], RuntimeEx
   ception
    + FullyQualifiedErrorId : InvokeMethodOnNull

D:\0.系统文档桌面\桌面\新建文件夹 (4)\1\0003.jpg        处理完成!
请按任意键继续. . .

TOP

大神 升级了之后 现在运行提示的是上面的内容了。而且 必须要在与图片同级目录下运行。放在文件夹外面运行的话,运行后直接就关闭了。

TOP

回复 15# went


    太谢谢你了 大神 大神啊!!!

TOP

返回列表