返回列表 发帖

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

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

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

TOP

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

TOP

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

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

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

考虑image magick 或者libpng,还未尝试
[url=][/url]

TOP

@echo off
setlocal enabledelayedexpansion
set "IM=D:\桌面\ImageMagick-7.0.3-0-portable-Q16-x86"
set "图片目录=PICDIR"
set "坐标目录=%图片目录%\Placements"
for %%N in (identify convert) do for %%a in ("%IM%\%%N.exe") do set "%%N=%%~sa"
2>nul md "%~dp0%坐标目录%\"
set /a "cntPic=sumPic=0"
for %%x in (png bmp) do for /f "delims=" %%i in ('2^>nul dir /a-d /b /s "%~dp0%图片目录%\*.%%x" ^| find /v /c ""') do ^
set /a "sumPic += %%i"
for %%x in (png bmp) do for /f "delims=" %%i in ('2^>nul dir /a-d /b /s "%~dp0%图片目录%\*.%%x"') do (
    for /f "tokens=1-2" %%b in ('%identify% -format "%%[fx:w] %%[fx:h]" "%%~i"') do (
        set /a "cntPic+=1, 原宽=%%b,原高=%%c"
        title 已完成 !cntPic!/!sumPic! %~nx0 & rem 在标题栏上显示处理进度
        REM echo;%%i
        REM echo;原尺寸:!原宽!,!原高!
        REM 剪上部 和 左部 空白
        %convert% "%%~i" -gravity South ^
                  -background white -splice 0x1  -background black -splice 0x1 ^
                  -trim  +repage -chop 0x1 ^
                  -gravity East ^
                  -background white -splice 1x0  -background black -splice 1x0 ^
                  -trim  +repage -chop 1x0 ^
                  "%%~i"
        for /f "tokens=1-2" %%b in ('%identify% -format "%%[fx:w] %%[fx:h]" "%%~i"') do (
            set /a "x = 原宽-%%b, y = 原高-%%c"
             >"%~dp0%坐标目录%\%%~ni.txt" (echo;!x!& echo;!y!)
        )
        REM 一次性裁剪掉四边空白
        %convert% "%%~i" -gravity SouthEast ^
                  -background white -splice 0x0  -background black -splice 0x0 ^
                  -trim  +repage -chop 0x0  "%%~i"
        REM 剪下部和右部空白
        REM %convert% "%%~i" -gravity North ^
                  REM -background white -splice 0x1  -background black -splice 0x1 ^
                  REM -trim  +repage -chop 0x1 ^
                  REM -gravity West ^
                  REM -background white -splice 1x0  -background black -splice 1x0 ^
                  REM -trim  +repage -chop 1x0 ^
                  REM "%%~i"
    )
)
echo;!cntPic!/!sumPic! 已完成处理
pause
exit
REM 一次性裁剪掉四边空白
REM %convert% "d:\test.png" -gravity SouthEast ^
          REM -background white -splice 0x0  -background black -splice 0x0 ^
          REM -trim  +repage -chop 0x0  "d:\test.png"
REM 剪上部空白
%convert% "D:\test.png" -gravity South ^
          -background white -splice 0x1  -background black -splice 0x1 ^
          -trim  +repage -chop 0x1  "d:\trim_South.png"
REM 剪左部空白
%convert% "d:\trim_South.png" -gravity East ^
          -background white -splice 1x0  -background black -splice 1x0 ^
          -trim  +repage -chop 1x0  "d:\trim_SouthEast.png"COPY

TOP

返回列表