Design Challenge -- Round Corner mask on images

BNig bernd.niggemann at uni-wh.de
Thu Mar 31 17:45:08 EDT 2016


Alejandro Tejada wrote
> By the way, just to complete in this same thread all masking options
> available, here is a recipe for using Scott Rossi's Hidden Point technique
> to mask an image:
> http://runtime-revolution.278305.n4.nabble.com/Hidden-point-technique-to-mask-an-image-td2270248.html
> 
> A graphic with discontiguous points is just another way to create a vector
> mask.
> 
> 1) Create a new stack
> 2) Create a polygon graphic
> and set the points of it to:
> 
> 0,0
> 
> 34,268
> 224,268
> 127,365
> 34,268
> 
> 3) import an image into this stack,
> put the image in a corner, where it does not
> hide the graphic and:
> 
> set the backpattern of grc 1 to the id of img 1
> 
> (now, the imported image is cropped within
> the graphic)
> 
> 4) set the script of the graphic to this variation
> of Scott Rossi script to move the first point of
> the graphic and (at the same time) move the
> image within the graphic:
> Alejandro


Hi Alejandro,

thanks for the script. Again Scott found a neat trick!

here is a slight adaption of your version that avoids that you wander off
into the wrong direction and the image becomes unresponsive.

------------------------------------------
local lpoints,tClick,tFirstPoint 
-- based on Scott Rossi script for masking images 
local sMinX, sMinY

on mouseDown 
   put mouseH(),mouseV() into tClick 
   put the points of me into lpoints 
   put line 1 of lpoints into tFirstPoint
   put line 2 to - 1 of lpoints into tPointLIst
   filter tPointList without ""
   sort tPointList numeric ascending by item 1 of each
   put item 1 of line 1 of tPointList into sMinX
   sort tPointList numeric ascending by item 2 of each
   put item 2 of line 1 of tPointLIst into sMinY
   put "mouseDown" & cr & lpoints & cr & cr into fld 1 
end mouseDown 

on mouseMove X,Y 
   if tClick = "" then exit mouseMove 
   put  (X - item 1 of tClick,Y - item 2 of tClick) 
   put  (X - item 1 of tClick) + item 1 of tFirstPoint,(Y - item 2 of
tClick) + item 2 of tFirstPoint into line 1 of lpoints
   if item 1 of line 1 of lpoints > sMinX then put sMinX into item 1 of line
1 of lpoints
   if item 2 of line 1 of lpoints > sMinY then put sMinY into item 2 of line
1 of lpoints
   set the points of me to lpoints 
end mouseMove 

on mouseUp 
   put "" into tClick 
end mouseUp 

on mouseRelease 
   put "" into tClick 
end mouseRelease 
------------------------------------------

as usual watch for linebreaks.

Kind regards
Bernd



--
View this message in context: http://runtime-revolution.278305.n4.nabble.com/Design-Challenge-Round-Corner-mask-on-images-tp4702659p4702898.html
Sent from the Revolution - User mailing list archive at Nabble.com.




More information about the use-livecode mailing list