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

50元红包写个裁切PNG透明图片的批处理

我这里有很多PNG格式的循环图片,但是都是太大了  用PS的裁切透明区域后 会照成图片播放位置异常,也就是图1和图2不能很好的衔接在一起,有没有办法可以自动裁切PNG透明区域,然后把偏移的X坐标Y坐标用TXT对应保存起来!以达到减小文件大小的目的!联系QQ6553244

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "IM=D:\桌面\ImageMagick-7.0.3-0-portable-Q16-x86"
  4. set "图片目录=PICDIR"
  5. set "坐标目录=%图片目录%\Placements"
  6. for %%N in (identify convert) do for %%a in ("%IM%\%%N.exe") do set "%%N=%%~sa"
  7. 2>nul md "%~dp0%坐标目录%\"
  8. set /a "cntPic=sumPic=0"
  9. for %%x in (png bmp) do for /f "delims=" %%i in ('2^>nul dir /a-d /b /s "%~dp0%图片目录%\*.%%x" ^| find /v /c ""') do ^
  10. set /a "sumPic += %%i"
  11. for %%x in (png bmp) do for /f "delims=" %%i in ('2^>nul dir /a-d /b /s "%~dp0%图片目录%\*.%%x"') do (
  12.     for /f "tokens=1-2" %%b in ('%identify% -format "%%[fx:w] %%[fx:h]" "%%~i"') do (
  13.         set /a "cntPic+=1, 原宽=%%b,原高=%%c"
  14.         title 已完成 !cntPic!/!sumPic! %~nx0 & rem 在标题栏上显示处理进度
  15.         REM echo;%%i
  16.         REM echo;原尺寸:!原宽!,!原高!
  17.         REM 剪上部 和 左部 空白
  18.         %convert% "%%~i" -gravity South ^
  19.                   -background white -splice 0x1  -background black -splice 0x1 ^
  20.                   -trim  +repage -chop 0x1 ^
  21.                   -gravity East ^
  22.                   -background white -splice 1x0  -background black -splice 1x0 ^
  23.                   -trim  +repage -chop 1x0 ^
  24.                   "%%~i"
  25.         for /f "tokens=1-2" %%b in ('%identify% -format "%%[fx:w] %%[fx:h]" "%%~i"') do (
  26.             set /a "x = 原宽-%%b, y = 原高-%%c"
  27.              >"%~dp0%坐标目录%\%%~ni.txt" (echo;!x!& echo;!y!)
  28.         )
  29.         REM 一次性裁剪掉四边空白
  30.         %convert% "%%~i" -gravity SouthEast ^
  31.                   -background white -splice 0x0  -background black -splice 0x0 ^
  32.                   -trim  +repage -chop 0x0  "%%~i"
  33.         REM 剪下部和右部空白
  34.         REM %convert% "%%~i" -gravity North ^
  35.                   REM -background white -splice 0x1  -background black -splice 0x1 ^
  36.                   REM -trim  +repage -chop 0x1 ^
  37.                   REM -gravity West ^
  38.                   REM -background white -splice 1x0  -background black -splice 1x0 ^
  39.                   REM -trim  +repage -chop 1x0 ^
  40.                   REM "%%~i"
  41.     )
  42. )
  43. echo;!cntPic!/!sumPic! 已完成处理
  44. pause
  45. exit
  46. REM 一次性裁剪掉四边空白
  47. REM %convert% "d:\test.png" -gravity SouthEast ^
  48.           REM -background white -splice 0x0  -background black -splice 0x0 ^
  49.           REM -trim  +repage -chop 0x0  "d:\test.png"
  50. REM 剪上部空白
  51. %convert% "D:\test.png" -gravity South ^
  52.           -background white -splice 0x1  -background black -splice 0x1 ^
  53.           -trim  +repage -chop 0x1  "d:\trim_South.png"
  54. REM 剪左部空白
  55. %convert% "d:\trim_South.png" -gravity East ^
  56.           -background white -splice 1x0  -background black -splice 1x0 ^
  57.           -trim  +repage -chop 1x0  "d:\trim_SouthEast.png"
复制代码

TOP

本帖最后由 523066680 于 2016-9-28 12:42 编辑

图片样板,处理后的样板示例。截图也行。

补充
突然想起来, PNG 有压缩算法,也就是连续同样颜色的区域是不占用多大空间的
去除白边或者裁剪去除背景部分,很难难缩小文件体积。如果是BMP就不同、

考虑image magick 或者libpng,还未尝试

TOP

选几个处理之前的图片和对应的处理之后的图片,打包上传到网盘,我需要看看你想实现什么效果。

TOP

实现不了吗 还是价格低了?

TOP

返回列表