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

[文件操作] 批处理如何实现裁剪图片?

本帖最后由 pcl_test 于 2016-5-8 02:27 编辑

求助1000多张图片,宽度高度尺寸都不一样,想批量去掉每个图片最上面100像素和最下面200像素,如何实现批处理——

实例——
我有1000 多张图片 有1200*800的 有 1600*900的 还有 1366*768的 等等等等……
现在我要批处理去掉每个图片最上面100像素和最下面200像素,1200*800的变成1200*500的,1600*900的的变成1600*600的,1366*768的变成1366*468的 等等等等……

求像我这种宽度高度尺寸都不一样的原图片怎么批处理去掉每个图片最上面100像素和最下面200像素。
1

评分人数

回复 2# tmplinshi


    非常感谢您 您这个太完美了!!而且言简意赅 解决了我的所有问题!感激大神!

TOP

回复 3# pcl_test


    就是说,我想让我处理后生成的文件与原图片相比质量无损。  (PS:我刚才用您的这个批处理命令处理了一个3M的超大原图 处理后的图片仅有900K大 很明显图片保存质量有很大的损耗)

TOP

回复 3# pcl_test


    高!实在是高!!我真是佩服的五体投地啊!!
但是大神 有个问题我想问下 这个BAT命令里 哪几行命令是设置处理后的图片文件的保存质量的?

TOP

本帖最后由 pcl_test 于 2015-7-25 11:56 编辑
  1. <!-- :
  2. @echo off
  3. md ".\处理结果\" 2>nul
  4. dir /b *.jpg|mshta "%~f0"
  5. ping -n 2 0 >nul&exit /b
  6. -->
  7. <script language=vbs>
  8. Dim Img,IP,file
  9. Set fso = CreateObject("Scripting.FileSystemObject")
  10. Set StdIn = fso.GetStandardStream(0)
  11. Do While StdIn.AtEndOfStream<>true
  12.     Set Img = CreateObject("WIA.ImageFile")
  13.     Set IP = CreateObject("WIA.ImageProcess")
  14.     file = StdIn.ReadLine
  15.     Img.LoadFile file
  16.     If Img.Height>305 Then
  17.         IP.Filters.Add IP.FilterInfos("Crop").FilterID  
  18.         IP.Filters(1).Properties("Top") = 100
  19.         IP.Filters(1).Properties("Bottom") = 200
  20.         Set Img = IP.Apply(Img)  
  21.         Img.SaveFile ".\处理结果\"&file
  22.     End If
  23. Loop
  24. Msgbox "完成!"
  25. </script>
  26. <script>close()</script>
复制代码

TOP

本帖最后由 tmplinshi 于 2015-7-25 11:17 编辑
  1. mogrify -crop +0+100 -crop +0-200 *.jpg
复制代码
mogrify.exe 是 ImageMagick 的工具之一,自己去搜索下载 ImageMagick。

或者这里下载: mogrify (ImageMagick 6.9.1--7 Q16 x86 2015-07-04).7z

TOP

返回列表