Problem with distort the line in different areas

Questions and postings pertaining to the usage of ImageMagick regardless of the interface. This includes the command-line utilities, as well as the C and C++ APIs. Usage questions are like "How do I use ImageMagick to create drop shadows?".
Post Reply
batjka911
Posts: 8
Joined: 2019-02-03T11:12:43-07:00
Authentication code: 1152
Location: Kaliningrad,Russia

Problem with distort the line in different areas

Post by batjka911 »

I'm use Linux.

Code: Select all

magick -version    
Version: ImageMagick 7.0.8-25 Q16 x86_64 2019-01-28 https://imagemagick.org
Copyright: © 1999-2019 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenCL OpenMP 
Delegates (built-in): bzlib cairo fontconfig freetype gslib heic jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png ps raw rsvg tiff webp wmf x xml zlib
I tried to reproduce the examples on this page:https://imagemagick.org/Usage/masking/#region_warping

Code: Select all

magick -size 600x70 xc:white -fill black -draw 'rectangle 5,25 595,31'\
-fill red -draw 'rectangle 5,39 595,45' lines.jpg
But when I apply -region with -swirl

Code: Select all

magick lines.jpg -region 90x70+10+0 -swirl 400 reg_lines.jpg
then this is the result and it's different from examples.
https://imgur.com/u267APA

And if i repeat the command completely it looks awful.

It's something I'm doing wrong?
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: Problem with distort the line in different areas

Post by fmw42 »

-region behaves differently in IM 7 than in IM 6. See https://imagemagick.org/script/porting.php#cli. These are different for me using IM 6.9.10.25 and IM 7.0.8.25.

Code: Select all

magick lines.gif \
-region 90x70+10+0    -swirl  400  \
-region 90x70+100+0   -swirl  400 \
-region 90x70+190+0   -swirl -400 \
-region 120x70+280+0  -implode 1.5 \
-region 100x70+380+0  -implode -7  \
-region 101x70+480+0  -wave 10x50 -crop 0x70+0+10\! \
+region lines_regions.gif

magick lines.gif -region 90x70+10+0 -swirl 400 +region reg_lines7.jpg

convert lines.gif -region 90x70+10+0 -swirl 400 +region reg_lines6.jpg

However, I am not sure how to get the same result as in the link with IM 7 using -regon. (One could just create a mask and use that to process). It is clearly the region issue, since -swirl gives the same results as per

Code: Select all

magick -size 600x70 xc:darkred \
-fill white -draw 'roundrectangle 5,5  595,65 5,5' \
-fill black -draw 'rectangle 5,25 595,31' \
-fill red -draw 'rectangle 5,39 595,45' \
lines.gif

convert lines.gif -crop 90x70+10+0 +repage -swirl 400 swirl6.jpg

magick  lines.gif -crop 90x70+10+0 +repage -swirl 400 swirl7.jpg

So another solution would be to crop the region, do the swirl, then composite the processed image back.

As per the porting notes, I am not sure -region can be used with IM 7 to do what it did in IM 6.
batjka911
Posts: 8
Joined: 2019-02-03T11:12:43-07:00
Authentication code: 1152
Location: Kaliningrad,Russia

Re: Problem with distort the line in different areas

Post by batjka911 »

Thanks for the quick response
fmw42 wrote:So another solution would be to crop the region, do the swirl, then composite the processed image back.
and practical advice.

I am not a Linux guru to integrate two versions IM on one computer. Therefore, I will try to use KNOPPIX for various experiments. True in DEBIAN last stable version 6.9.7.4

And thanks again.
User avatar
GeeMack
Posts: 718
Joined: 2015-12-01T22:09:46-07:00
Authentication code: 1151
Location: Central Illinois, USA

Re: Problem with distort the line in different areas

Post by GeeMack »

batjka911 wrote: 2019-02-03T14:28:13-07:00 Thanks for the quick response
fmw42 wrote:So another solution would be to crop the region, do the swirl, then composite the processed image back.
and practical advice.
To crop an region, do some operations on it, then composite it back on the original as fmw42 suggested can be pretty simple. This command...

Code: Select all

magick lines.jpg \( +clone -crop 90x70+10+0 -swirl 400 \) -flatten reg_lines.jpg
... does exactly that. Inside the parentheses it clones the input image, crops the specified region, and swirls just that piece. The cropped and swirled piece conveniently hangs on to its original offsets, so when you flatten it back onto the input image, it places it at its original location.
batjka911
Posts: 8
Joined: 2019-02-03T11:12:43-07:00
Authentication code: 1152
Location: Kaliningrad,Russia

Re: Problem with distort the line in different areas

Post by batjka911 »

GeeMack wrote: 2019-02-03T16:40:18-07:00
To crop an region, do some operations on it, then composite it back on the original as fmw42 suggested can be pretty simple. This command...

Code: Select all

magick lines.jpg \( +clone -crop 90x70+10+0 -swirl 400 \) -flatten reg_lines.jpg
... does exactly that. Inside the parentheses it clones the input image, crops the specified region, and swirls just that piece. The cropped and swirled piece conveniently hangs on to its original offsets, so when you flatten it back onto the input image, it places it at its original location.
Thanks,exactly what the doctor ordered.
Post Reply