Page 1 of 1

How to use conditions with ImageMagick properly

Posted: 2018-10-07T12:32:55-07:00
by imanasya
When 0.jpg and 1.jpg have resolution 356x800 (w1<h1) and 596x770 (w2<h2) respectively, this line:

Code: Select all

magick 0.jpg fuzz 2%% -trim +repage -quality 100 first.jpg
still doesn't work and every time gives me combined image. Help me please find the mistake in the code:

Code: Select all

@echo off&setlocal enabledelayedexpansion

for /f "tokens=1,2 delims=:" %%x in ('convert 0.jpg -fuzz 2%% -trim +repage -format %%w:%%h +write info: NULL') do set a/ w1=%%x&set a/ h1=%%y
for /f "tokens=1,2 delims=:" %%x in ('convert 1.jpg -fuzz 2%% -trim +repage -format %%w:%%h +write info: NULL') do set a/ w2=%%x&set a/ h2=%%y

if !w1! LSS !h1! (
  if !w2! LSS !h2! (
  magick 0.jpg fuzz 2%% -trim +repage -quality 100 first.jpg
  ) else (
  magick 0.jpg 1.jpg -set option:dim "%%[fx:max(max(u.w,v.w),max(u.h,v.h))]" -filter Catrom -resize "%%[dim]x%%[dim]" -unsharp 0x1+0.8+0.05 -background white -gravity center -append -quality 100 combined.jpg
  )
) else (
magick 0.jpg 1.jpg -set option:dim "%%[fx:max(max(u.w,v.w),max(u.h,v.h))]" -filter Catrom -resize "%%[dim]x%%[dim]" -unsharp 0x1+0.8+0.05 -background white -gravity center -append -quality 100 combined.jpg
)

Re: How to use conditions with ImageMagick properly

Posted: 2018-10-07T13:09:22-07:00
by snibgo
For "set", type "help set". That shows the syntax is "set /a", not "set a/".

I suggest you use "magick" for v7, not "convert".

Re: How to use conditions with ImageMagick properly

Posted: 2018-10-08T01:12:38-07:00
by imanasya
It did not help. I'm getting the error:

Code: Select all

magick: unable to open image 'fuzz': No such file or directory @ error/blob.c/OpenBlob/3489.
magick: no decode delegate for this image format `' @ error/constitute.c/ReadImage/556.

Code: Select all

@echo off&setlocal enabledelayedexpansion

for /f "tokens=1,2 delims=:" %%x in ('magick 0.jpg -fuzz 2%% -trim +repage -format %%w:%%h +write info: NULL') do set /a w1=%%x&set /a h1=%%y
for /f "tokens=1,2 delims=:" %%x in ('magick 1.jpg -fuzz 2%% -trim +repage -format %%w:%%h +write info: NULL') do set /a w2=%%x&set /a h2=%%y

if !w1! LSS !h1! (
  if !w2! LSS !h2! (
  magick 0.jpg fuzz 2%% -trim +repage -quality 100 first.jpg
  ) else (
  magick 0.jpg 1.jpg -set option:dim "%%[fx:max(max(u.w,v.w),max(u.h,v.h))]" -filter Catrom -resize "%%[dim]x%%[dim]" -unsharp 0x1+0.8+0.05 -background white -gravity center -append -quality 100 combined.jpg
  )
) else (
magick 0.jpg 1.jpg -set option:dim "%%[fx:max(max(u.w,v.w),max(u.h,v.h))]" -filter Catrom -resize "%%[dim]x%%[dim]" -unsharp 0x1+0.8+0.05 -background white -gravity center -append -quality 100 combined.jpg
)

Re: How to use conditions with ImageMagick properly

Posted: 2018-10-08T04:18:36-07:00
by snibgo
Options always start with a "+" or "-". You had neither, so IM assumed "trim" was an image you wanted to read.

Re: How to use conditions with ImageMagick properly

Posted: 2018-10-08T10:04:11-07:00
by imanasya
Thank you very much. I forgot minus.