Page 1 of 1
Offset behaviour with -page, -set page
Posted: 2018-08-30T02:12:40-07:00
by codelad
Been tearing my hair off trying to understand this '-page', '-set page' behaviour:
convert -version
Version: ImageMagick 7.0.8-10 Q16 x86_64 2018-08-19
00. Expected behaviour (as far as I understand):
convert -delay 100 -page 100x100+0+0 \( rose: -set page +50+50 \) rose: rose_00.gif
01. Expected same result as 00, but somehow the offset does not apply:
convert -delay 100 -page 100x100+0+0 rose: \( rose: -set page +50+50 \) rose_01.gif
02. Strangely, this works as expected:
convert -delay 100 -page 100x100+0+0 rose: -negate \( rose: -set page +50+50 \) rose_02.gif
03. While here again the offset does not apply:
convert -delay 100 -page 100x100+0+0 rose: \( rose: -set page +50+50 -negate \) rose_03.gif
Tried these merely for practice, hence no real-world use/scenario involved. Would greatly appreciate if someone could hopefully describe why these work the way they do. Or, point me to any documentation that describes this behaviour.
Used Firefox 61 to view output images. Running Arch Linux.
Thank you!
Re: Offset behaviour with -page, -set page
Posted: 2018-08-30T03:26:58-07:00
by snibgo
For v7, I suggest you always use "magick", not "convert" or "magick convert".
When writing images to GIF, IM processes offset metadata. So to understand what is happening, I suggest you also write to "info:"
Code: Select all
magick -delay 100 -page 100x100+0+0 ( rose: -set page +50+50 ) rose: +write info: r0.gif
rose:[0] PNM 70x46 100x100+50+50 8-bit sRGB 0.000u 0:00.000
rose:[1] PNM 70x46 100x100+0+0 8-bit sRGB 0.000u 0:00.016
magick -delay 100 -page 100x100+0+0 rose: ( rose: -set page +50+50 ) +write info: r1.gif
rose:[0] PNM 70x46 100x100+0+0 8-bit sRGB 0.016u 0:00.015
rose:[1] PNM 70x46 100x100+50+50 8-bit sRGB 0.016u 0:00.031
magick -delay 100 -page 100x100+0+0 rose: -negate ( rose: -set page +50+50 ) +write info: r2.gif
rose:[0] PNM 70x46 100x100+0+0 8-bit sRGB 0.000u 0:00.000
rose:[1] PNM 70x46 100x100+50+50 8-bit sRGB 0.000u 0:00.015
magick -delay 100 -page 100x100+0+0 rose: ( rose: -set page +50+50 -negate ) +write info: r3.gif
rose:[0] PNM 70x46 100x100+0+0 8-bit sRGB 0.016u 0:00.015
rose:[1] PNM 70x46 100x100+50+50 8-bit sRGB 0.016u 0:00.015
f:\web\im>
The text "info:" seems as expected.
You might want "-layers trim-bounds" before writing each gif.
Does that answer the question?
Re: Offset behaviour with -page, -set page
Posted: 2018-08-30T06:07:53-07:00
by codelad
Thank you! Substituting 'magick' for 'convert' clears this up neatly, and also several more conversions including this one with '-repage' that had me confused:
magick -delay 100 -page 100x100+50+50 rose: -resize '200%' -repage 0x0+10+10 +write rose_00.gif info:
convert -delay 100 -page 100x100+50+50 rose: -resize '200%' -repage 0x0+10+10 +write rose_01.gif info:
Am just about starting with IM. Is there some place where magick vs convert differences are documented? If I recall right, the command-line documentation appeared to use 'magick convert' in examples (apparently targeting pre-v7 releases).
Re: Offset behaviour with -page, -set page
Posted: 2018-08-30T07:41:05-07:00
by snibgo
The v7 porting guide is
http://www.imagemagick.org/script/porting.php
Most of the official documentation, and my own unofficial documentation, was written for v6. However, most of it should work when you use "magick" instead of "convert". The porting guide should tell you what needs changing.
However, many examples scattered around the web use very old syntax, such as operating on images before reading them, which is deprecated in v7.
Re: Offset behaviour with -page, -set page
Posted: 2018-09-05T22:31:28-07:00
by codelad
Thank you. Somehow overlooked the porting guide earlier. Just what I needed.
After reading up some more, the v7 "magick" command largely appears to work predictably. And of the several other quirks I've come across, nearly all of them appear to be down to using "convert" in v7.
Have also noticed v6 still being recommended, but will stick to v7 (and "magick") till I run into something drastic.