trim & make transparent (region)

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
Lars-Daniel
Posts: 37
Joined: 2015-09-20T05:55:17-07:00
Authentication code: 1151

trim & make transparent (region)

Post by Lars-Daniel »

Hi there,

I want to trim an image by a fuzzy border color (white to gray) and make the old border transparent. Works fine with this:

Code: Select all

convert -fuzz 50% -trim input.png -background transparent -flatten output.png
Now I'd like to take 10% from "-gravity north" and also want to turn the white color to transparent. Actually, this doesn't work, since region is buggy in v7: https://www.imagemagick.org/discourse-s ... =3&t=32212

Is it possible to cut out 10% from the top, make it transparent and replace the part of the original image? I wasn't able to replace it, I was only able to overlay it ... but of course, this doesn't work :)

Example image (the part aboth the map "Field Papers" should be turned to transparent): http://imgur.com/a/1FG7T

Best,
Lars-Daniel
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: trim & make transparent (region)

Post by fmw42 »

Please always provide your IM version and platform, since syntax differs. Do you want to trim first and then cut out 10% from the top and make white transparent. I am confused. Please list the exact steps you want.

Your syntax is not truly proper though IM 6 is forgiving. You should read your input first, then settings, then operators, then the output:

Code: Select all

convert input.png -fuzz 50% -trim +repage -background transparent -flatten output.png
If you just want to replace the top 10% with transparency (chop 10% off and splice 10% transparent back), then try (Unix syntax for IM 6).

IM 6

Code: Select all

chopamt=`convert input.jpg -format "%[fx:0.1*h]" info:`
convert input.jpg -gravity north -chop 0x$chopamt -background none -splice 0x$chopamt result.png
IM 7

Code: Select all

magick input.jpg -set option:chopamt "%[fx:0.1*h]" -gravity north -chop "0x%[chopamt]" -background none -splice "0x%[chopamt]" result.png
If that is not what you want, please clarify further
Lars-Daniel
Posts: 37
Joined: 2015-09-20T05:55:17-07:00
Authentication code: 1151

Re: trim & make transparent (region)

Post by Lars-Daniel »

fmw42 wrote: 2017-06-24T15:13:29-07:00 Your syntax is not truly proper though IM 6 is forgiving. You should read your input first, then settings, then operators, then the output:
Sorry, didn't know the syntax changed. Thanks for the hint, I'll read into that.[/quote]
fmw42 wrote: 2017-06-24T15:13:29-07:00convert input.png -fuzz 50% -trim +repage -background transparent -flatten output.png[/code]
I don't want to repage (see below), but I'll try to implement your other parts.
fmw42 wrote: 2017-06-24T15:13:29-07:00If that is not what you want, please clarify further
Actually, that's what I want. All the red colored part should be transparent: http://imgur.com/a/r5DPC
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: trim & make transparent (region)

Post by fmw42 »

You can do this to change the pink to transparent.

Code: Select all

convert input.png -fuzz 10% -fill none -draw "matte 10,10 floodfill" result1.png
There are some red lines left. So for that you would likely need to shave or chop off those parts of the image.

See
http://www.imagemagick.org/Usage/draw/#matte
http://www.imagemagick.org/Usage/crop/#shave
http://www.imagemagick.org/Usage/crop/#chop
Lars-Daniel
Posts: 37
Joined: 2015-09-20T05:55:17-07:00
Authentication code: 1151

Re: trim & make transparent (region)

Post by Lars-Daniel »

Sorry, this gives me:
convert: NonconformingDrawingPrimitiveDefinition `matte' @ error/draw.c/DrawImage/3269.
User avatar
fmw42
Posts: 25562
Joined: 2007-07-02T17:14:51-07:00
Authentication code: 1152
Location: Sunnyvale, California, USA

Re: trim & make transparent (region)

Post by fmw42 »

On IM 7, there are changes. That is why it is always a good idea to identify your IM version and platform. Try

Code: Select all

magick input.png -fuzz 10% -fill none -draw "alpha 10,10 floodfill" result.png
See some changes in http://imagemagick.org/script/porting.php#cli
Post Reply