Pipelines/TIFF.ps1
|
function Get-FoTIFFPipeline { param([hashtable]$Context) $s = $Context.Settings $cpus = [Environment]::ProcessorCount $jheadMeta = if ($s.TIFFCopyMetadata) { '-zt ' } else { '-purejpg -di -dx -dt -zt ' } $jpegStrip = if ($s.TIFFCopyMetadata) { '' } else { '--strip-all ' } $arith = if ($s.JPEGUseArithmeticEncoding) { '--with-arith ' } else { '' } $tranFlags = if ($s.JPEGUseArithmeticEncoding) { '-arithmetic ' } else { '' } $tranFlags += if ($s.TIFFCopyMetadata) { '-copy all ' } else { '-copy none ' } $steps = @() $steps += New-FoStep -Name 'jhead (1/6)' -Executable 'jhead.exe' -Arguments "-q -autorot $jheadMeta%TMPINPUTFILE%" -Mode TempInput -Gate { -not $args[0].IsJPEGCMYK } $steps += New-FoStep -Name 'ImageMagick (2/6)' -Executable 'magick.exe' -Arguments 'convert %INPUTFILE% -quiet -compress ZIP -strip %TMPOUTPUTFILE%' -Mode TempOutput -Gate { -not $args[0].Settings.TIFFCopyMetadata } $steps += New-FoStep -Name 'jpegoptim (3/6)' -Executable 'jpegoptim.exe' -Arguments "-o -q --all-progressive --nofix $jpegStrip$arith-w $cpus %TMPINPUTFILE%" -Mode TempInput $steps += New-FoStep -Name 'jpegtran (4/6)' -Executable 'jpegtran.exe' -Arguments "-progressive -optimize $tranFlags%INPUTFILE% %TMPOUTPUTFILE%" -Mode TempOutput $steps += New-FoStep -Name 'mozjpegtran (5/6)' -Executable 'mozjpegtran.exe' -Arguments "-outfile %TMPOUTPUTFILE% -progressive -optimize -perfect $tranFlags%INPUTFILE%" -Mode TempOutput $steps += New-FoStep -Name 'tinydng (6/6)' -Executable 'tinydng-cli.exe' -Arguments '--input %INPUTFILE% -l -o %TMPOUTPUTFILE%' -Mode TempOutput return $steps } |