views:

485

answers:

2

Hi Everyone (this is my first post),

I am trying to figure a way of cropping a polygon out of an image. I have been reading other similar code. It seems that most code is based around the following process:

-Resize the image to fit the width and height of the polygon shape,

-Create a blank image of an unusual colour the same size,

-Overlay transparent pixels in the shape of the polygon,

-Overlay that on to the resized image

-set the unusual colour to be transparent...

My problem is I do not want the code to be reliant on the unusual colour not being in the original image. Does anyone have a better method or some code which I can use to check if the unusual colour is in the image.

On a side note once I have cropped them I am looking to add a border only around the top and the left sides of the shape and three pixels in the corners to achieve a rounded corner effect... if anyone has any ideas about that then please also post.

Thanks in Advance.

A: 

an alternative way would be to cut the big image in 4 parts ... a top part, left side and right side that are the parts on the left and right of the image afte the mask and bottom part and recompose them. But that would require a bit of code and calculations.

solomongaby
Thanks Solomon... I don't fully understand how that would work..but I guess it would not work if the shape was hollow - which it can be.
Mark
i dont quite get what you mean
solomongaby
Ok... I think I am a step closer... I have inverted my polygon. Is it possible to overlay a polygon straight onto an picture (without making it into a picture itself and merging it)?
Mark
+1  A: 

If you draw the polygon in black-white (and brey values between) on a different image (called mask), you can use applyMask of the WideImage library.

See: - http://wideimage.sourceforge.net/ - http://wideimage.sourceforge.net/wp-content/current/demo/index.php?demo=applyMask&output=preset%20for%20demo&colors=255&dither=&match%5Fpalette=

gasper_k
Thanks... that looks like it will do the job perfectly... fingers crossed
Mark