Board logo

标题: [文件操作] 谁能写一个批处理的切图脚本 [打印本页]

作者: netdzb    时间: 2021-4-10 22:31     标题: 谁能写一个批处理的切图脚本

本帖最后由 netdzb 于 2021-4-10 22:34 编辑

要求是有选择性的切割图片的左上角,右上角,右下角,左下角。
方法越多越好,python,vbs,第三方工具结合批处理,谢谢大家。

一次只切割一个角,但是要有选择性的菜单,只要是命令行的菜单就可以。

图片的链接在
https://javame.lanzous.com/icpJcnwdn7i
作者: xp3000    时间: 2021-4-12 08:48

本帖最后由 xp3000 于 2021-4-13 20:24 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "str=ABCDEFGHIJKLMNOPQRS"
  4. for /l %%i in (0,1,18) do (set "!str:~%%i,1!=%%i")
  5. :main
  6. set input=
  7. set /p input=请输入A-S:
  8. if not defined input goto main
  9. set /a W=(!input!)*30
  10. setlocal
  11. :input_
  12. set /p input_=请输入1-19:
  13. if %input_% geq 20 goto input_
  14. set /a H=(!input_!-1)*30
  15. echo.
  16. echo         [a]左上  [b]左下  [c]右上  [d]右下
  17. echo.
  18. set/p var=请选择[a/b/c/d]:
  19. set var=!var:a=左上! && set var=!var:b=左下! && set var=!var:c=右上! && set var=!var:d=右下! && set var=!var: =!
  20. echo.
  21. if %var%==左上 set /a 宽=%W%+45 & set /a 高=(660-75)-%H% & set /a →=0 & set /a ↓=0 & goto ok
  22. if %var%==左下 set /a 宽=%W%+45 & set /a 高=%H%+76 & set /a →=0 & set /a ↓=660-%H%-44 & goto ok
  23. if %var%==右上 set /a 宽=628-%W%-46 & set /a 高=660-75-%H% & set /a →=%W%+44 & set /a ↓=0 & goto ok
  24. if %var%==右下 set /a 宽=(18*30-%W%)+44 & set /a 高=%H%+76 & set /a →=%W%+44 & set /a ↓=(660-72)-%H% & goto ok
  25. goto main
  26. :ok
  27. @for %%i in (1.png) do (ffmpeg.exe -i "%%i" -strict -2 -vf crop=%宽%:%高%:%→%:%↓% -y "%%~ni_切割%var%_%input%—%input_%%%~xi"
  28.     if exist %%~ni_切割%var%_%input%—%input_%%%~xi  (cls&echo...............&echo %var%图片已输出_%input%和%input_%
  29.     rundll32.exe shimgvw.dll,ImageView_Fullscreen %~dp0%%~ni_切割%var%_%input%—%input_%%%~xi)
  30. )
  31. endlocal
  32. goto main
  33. pause
复制代码
HJK……你给的图片都是错误的,只能按错误图片的来切割了,
如果按照你的图片操作,删除第3行的I,在S后面增加个T,
要不然,调整图片的字母A-S

加了一行可以预览切割的图片
rundll32.exe shimgvw.dll,ImageView_Fullscreen %~dp0%%~ni_切割%var%_%input%—%input_%%%~xi
作者: netdzb    时间: 2021-4-12 09:35

回复 2# xp3000


你的ffmpeg的问题解决了吗?
作者: netdzb    时间: 2021-4-12 09:45

回复 2# xp3000

&set /a ↓=0  向下的箭头代表什么啊?
作者: xp3000    时间: 2021-4-12 11:30

变量,箭头下,意思是坐标下,位置0

ffmpeg我单独解决的,先分割视频附近关键帧,
下面部分的插帧先看准确时间,插1帧分割后再和前面视频合并




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2