Red [ Title: "Draw Image Resizing Test" Author: [REBOL version "Carl Sassenrath" Red port "Gregg Irwin"] Version: 0.0.1 Needs: View ] distance: func [pos [pair!]][square-root add pos/x ** 2 pos/y ** 2] grab-size: 5 hit?: func [dist] [dist <= grab-size] hit: none mouse-down: func [event][ mouse-state: 'down hit: none down-pos: event/offset if hit? distance (down-pos - d-img/:IDX_I_TL) [hit: IDX_I_TL] if hit? distance (down-pos - d-img/:IDX_I_BR) [hit: IDX_I_BR] ] mouse-up: func [event][ mouse-state: 'up down-pos: none ] mouse-down?: does [mouse-state = 'down] mouse-move: func [event][ either mouse-down? [ if hit [ d-img/:hit: event/offset switch hit reduce [ IDX_I_TL [d-grab-tl/:IDX_G_POS: event/offset] IDX_I_BR [d-grab-br/:IDX_G_POS: event/offset] ] ] ][ ; Here you could do something like change the color of the ; grab handle you're over. ] ] ;img-url: https://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png img-url: https://pbs.twimg.com/profile_images/501701094032941056/R-a4YJ5K.png img: load/as read/binary img-url 'jpeg draw-blk: compose [ d-img: image img 100x100 (50x50 + img/size) fill-pen yellow d-grab-tl: circle 100x100 (grab-size) d-grab-br: circle (50x50 + img/size) (grab-size) ] IDX_I_IMG: 2 ; image in canvas draw block IDX_I_TL: 3 ; top-left IDX_I_BR: 4 ; bottom-right IDX_G_POS: 2 ; Grab handle center view [ backdrop water ;backeffect [gradient 0x1 water coal] text water bold font-color white "Red resize image test" text 200 water bold font-color yellow "Drag the grab handles" return canvas: base 960x720 black all-over draw draw-blk on-down [mouse-down event] on-up [mouse-up event] on-over [mouse-move event] do [ mouse-state: 'up ] ]