Pipelines/JPEG.ps1
|
function Get-FoJPEGPipeline { param([hashtable]$Context) $s = $Context.Settings $level = $s.Level $leanify = Get-FoLeanifyIterations -Level $level -Override $s.LeanifyIterations $steps = @() $pingo = if ($s.JPEGAllowLossy) { '-quality=95 ' } else { "-s$level " } $steps += New-FoStep -Name 'pingo (1/11)' -Executable 'pingo.exe' -Arguments "$pingo%TMPINPUTFILE%" -Mode TempInput if ($s.JPEGAllowLossy -and -not $s.JPEGCopyMetadata) { $steps += New-FoStep -Name 'cjpegli (2/11)' -Executable 'cjpegli.exe' -Arguments "%INPUTFILE% %TMPOUTPUTFILE%" -Mode TempOutput $steps += New-FoStep -Name 'Guetzli (3/11)' -Executable 'guetzli.exe' -Arguments "%INPUTFILE% %TMPOUTPUTFILE%" -Mode TempOutput $steps += New-FoStep -Name 'jpeg-recompress (4/11)' -Executable 'jpeg-recompress.exe' -Arguments "%INPUTFILE% %TMPOUTPUTFILE%" -Mode TempOutput } if (-not $Context.IsJPEGCMYK) { $steps += New-FoStep -Name 'jhead (5/11)' -Executable 'jhead.exe' -Arguments '-purejpg -q %TMPINPUTFILE%' -Mode TempInput -Gate { -not $args[0].Settings.JPEGCopyMetadata } } $steps += New-FoStep -Name 'Leanify (6/11)' -Executable 'leanify.exe' -Arguments "-q -p -i $leanify %TMPINPUTFILE%" -Mode TempInput if ($s.JPEGAllowLossy) { $steps += New-FoStep -Name 'ImageMagick (7/11)' -Executable 'magick.exe' -Arguments 'convert %INPUTFILE% -quiet -interlace Plane -define jpeg:optimize-coding=true %TMPOUTPUTFILE%' -Mode TempOutput } $steps += New-FoStep -Name 'jpegoptim (8/11)' -Executable 'jpegoptim.exe' -Arguments '--all-progressive --strip-all --force %TMPINPUTFILE%' -Mode TempInput -Gate { -not $args[0].Settings.JPEGCopyMetadata } $steps += New-FoStep -Name 'jpegtran (9/11)' -Executable 'jpegtran.exe' -Arguments '-optimize -progressive -copy none -outfile %TMPOUTPUTFILE% %INPUTFILE%' -Mode TempOutput $steps += New-FoStep -Name 'mozjpegtran (10/11)' -Executable 'mozjpegtran.exe' -Arguments '-optimize -progressive -perfect -copy none -outfile %TMPOUTPUTFILE% %INPUTFILE%' -Mode TempOutput $ect = Get-FoECTPreset -Level $level $steps += New-FoStep -Name 'ECT (11/11)' -Executable 'ECT.exe' -Arguments "-quiet --mt-deflate --mt-file -progressive $ect %TMPINPUTFILE%" -Mode TempInput return $steps } |