slyfox1186

imagemagick-optimize-jpg-size.bat

Dec 4th, 2020 (edited)
1,167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Batch 3.87 KB | None | 0 0
  1. REM THIS IS ONE OF THE BEST IMAGEMAGICK SCRIPTS TO SHRINK LARGE JPG FILES WITH NEAR LOSSLESS QUALITY
  2. REM I'VE SEEN 50 MB IMAGES BECOME 3-4 MB.... AND I HAVE TO USE A SPECIAL PROGRAM TO SEE THE ACTUAL QUALITY DIFFERENCES THE RESULTS ARE SO IMPRESSIVE
  3.  
  4. REM IF YOU WANT A SCRIPT MADE FOR ANY SIZE JPG FILE (RECOMMENDED FOR MEDIUM TO SMALL SIZES) SEE MY OTHER SCRIPT ( https://pastebin.com/xh4Fchvg )
  5.  
  6. REM INSTRUCTIONS!!
  7. REM CREATE A BATCH SCRIPT AND PLACE IT IN A TEST FOLDER FULL OF JPG FILES TO PROCESS
  8. REM MAKE SURE YOU HAVE THE LATEST VERSION OF IMAGEMAGICK INSTALLED FOR WINDOWS
  9. REM ( https://imagemagick.org/script/download.php )
  10. REM YOU MUST DOWNLOAD ONE OF THE DLL VERSIONS THATS NAME ENDS WITH "HDRI-x64-dll.exe"
  11. REM YOU MUST CHOOSE THE LEGACY PROGRAMS OPTION WHEN INSTALLING IMAGEMAGICK OR WINDOWS WONT RECOGNIZE THE "CONVERT" COMMAND
  12. REM YOU ALSO NEED TO PLACE THE ROOT INSTALL DIRECTORY ( C:\Program Files\ImageMagick-blah-blah ) IN YOUR WINDOWS ENVIRONMENT PATH
  13. REM OR POINT THE FULL PATH OF [ C:\Program Files\ImageMagick-blah-blah\convert.exe ] IN PLACE OF THE CONVERT COMMAND IN THE SCRIPT BELOW
  14.  
  15. REM IMPORTANT 1!!
  16. REM THIS SCRIPT WILL CONVERT ALL JPG FILES INTO INTERMEDIATE MPC CACHE FILES
  17. REM THEN USE THE NEWLY CREATED MPC FILES TO EITHER CREATE OPTIMIZED
  18. REM JPG FILES OR PNG FILES. THE SCRIPT WILL ASK YOU WHICH TYPE OF FILE YOU WISH TO CREATE.
  19. REM THE NEW OPTIMIZED FILES WILL BE FOUND IN A SUBFOLDER NAMED "Output"
  20.  
  21. REM IMPORTANT 2!!
  22. REM THE CACHE FOLDER "Cache_Files" THAT WAS TEMPORARILY CREATED WILL BE MOVED TO THE RECYCLE BIN
  23. REM FOR THE RECYCLE BIN TO WORK YOU MUST DOWNLOAD AND INSTALL RECYCLE.EXE
  24. REM YOU CAN DOWNLOAD THE RECYCLE.EXE FILE AT ( http://www.maddogsw.com/cmdutils/ )
  25. REM UNZIP THE EXE INTO THE WINDOWS PATH.. SUCH AS THE SYSTEM32 FOLDER
  26.  
  27. REM BEGIN SCRIPT!!
  28.  
  29. @ECHO OFF
  30. SETLOCAL
  31. COLOR 0A
  32. TITLE CONVERT JPG FILES INTO MPC AND BACK AGAIN TO PNG OR JPG
  33.  
  34. PUSHD "%~dp0"
  35.  
  36. REM CREATE OUTPUT FOLDERS
  37. IF NOT EXIST "Output" MKDIR "Output"
  38. IF NOT EXIST "Cache_Files" MKDIR "Cache_Files"
  39.  
  40. REM FIND ALL JPG FILES AND CONVERT THEM TO MPC FORMAT
  41. SETLOCAL ENABLEDELAYEDEXPANSION
  42. SET CNT=0
  43. FOR %%G IN (*.jpg) DO (
  44. FOR /F "TOKENS=3" %%H IN ('MAGICK identify "%%G"') DO (
  45.     SET /A CNT+=1
  46.     SET "file!CNT!=%%~nxG"
  47.     ECHO=
  48.     CALL ECHO [!CNT!] Converting Image: %%file!CNT!%% == %%~nG.mpc
  49.     ECHO=
  50.     CONVERT "%%G" -monitor -filter Triangle -define filter:support=2 -thumbnail "%%H" -unsharp 0.25x0.08+8.3+0.045 -dither None -posterize 136 -quality 82 -define jpeg:fancy-upsampling=off -define png:compression-filter=5 -define png:compression-level=9 -define png:compression-strategy=1 -define png:exclude-chunk=all -interlace none -colorspace sRGB "%CD%\Cache_Files\%%~nG.mpc"
  51.     ECHO=
  52.     REM CONTINUE SCRIPT IF ALL MPC FILES HAVE BEEN CREATED
  53.     IF "%%G"=="" ( ENDLOCAL )
  54.     )
  55. )
  56.  
  57. REM PROMPT USER CHOICE, CHOOSE PNG OR JPG OUTPUT
  58. CLS && ECHO=
  59. ECHO CHOOSE THE IMAGE TYPE
  60. ECHO [1] JPG
  61. ECHO [2] PNG
  62. ECHO [3] EXIT && ECHO=
  63.  
  64. CHOICE /C 123 /N /M "CHOOSE A NUMBER: "
  65. CLS
  66. IF ERRORLEVEL 3 GOTO :EOF
  67. IF ERRORLEVEL 2 GOTO MAKEPNG
  68. IF ERRORLEVEL 1 GOTO MAKEJPG
  69.  
  70. REM CONVERT MPC INTO PNG
  71. :MAKEPNG
  72. SETLOCAL ENABLEDELAYEDEXPANSION
  73. SET CNT=0
  74. FOR %%I IN ("%CD%\Cache_Files\*.mpc") DO (
  75.     SET /A CNT+=1
  76.     SET "file!CNT!=%%~nxI"
  77.     ECHO=
  78.     CALL ECHO [!CNT!] Converting Image: %%file!CNT!%% == %%~nI.png
  79.     ECHO=
  80.     CONVERT "%%I" -monitor "Output\%%~nI.png"
  81.     ECHO=
  82.     )
  83. ENDLOCAL & GOTO END
  84.  
  85. REM CONVERT MPC INTO JPG
  86. :MAKEJPG
  87. SETLOCAL ENABLEDELAYEDEXPANSION
  88. SET CNT=0
  89. FOR %%J IN ("%CD%\Cache_Files\*.mpc") DO (
  90.     SET /A CNT+=1
  91.     SET "file!CNT!=%%~nxJ"
  92.     ECHO=
  93.     CALL ECHO [!CNT!] Converting Image: %%file!CNT!%% == %%~nJ.jpg
  94.     ECHO=
  95.     CONVERT "%%J" -monitor "Output\%%~nJ.jpg"
  96.     ECHO=
  97.     )
  98. ENDLOCAL
  99.  
  100. :END
  101. REM COMMENT OUT THE NEXT LINE TO KEEP THE MPC AND CACHE FILES USED ABOVE
  102. RECYCLE "Cache_Files"
  103.  
  104. REM OPEN EXPLORER TO THE OUTPUT FOLDER
  105. START "" /MAX explorer.exe "%CD%\Output"
  106. EXIT
Advertisement
Add Comment
Please, Sign In to add comment