Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

Request-color use

 [1/4] from: ronald::gruss::libertysurf::fr at: 9-May-2001 22:47


Hi, How could I change the filter color in the script below using request-color ? I'm not used enough to rebol to understand everything in request-color's source. Thanks in advance. image1: load-image %./images/couleurprimaire.gif image2: load-image %./images/couleursecondaire.gif faces: layout [ size 450x480 backdrop water img: image 300x300 image1 below across button image1 70x70 [img/image: image1 show img] button image2 70x70 [img/image: image2 show img] return ; pad 0x20 space 0x2 label yellow "Utiliser les boutons pour changer l'image à analyser" return label yellow "Maintenir le bouton gauche de la souris enfoncé pour déplacer les filtres" ; at image1/size * 0x1 + 10x120 return pos: vh2 90x24 ] vid-face: get-style 'face append faces/pane v-face: make vid-face [ size: 90x90 pos/text: offset: 340x20 edge: make edge [color: 250.120.40 size: 4x4] color: font: para: text: data: image: none effect: [multiply 255.0.0] feel: make feel [ engage: func [f a e] [ ;intercepts target face events if find [over away] a [ pos/text: f/offset: confine f/offset + e/offset - f/data f/size 0x0 f/parent-face/size f/effect: [multiply 255.0.0] show [f pos] ] if a = 'down [f/data: e/offset] ] ] ] view faces Bye bye

 [2/4] from: gjones05:mail:orion at: 9-May-2001 17:40


From: "Ronald Gruss"
> Hi, > > How could I change the filter color in the script below using
request-color ?
> I'm not used enough to rebol to understand everything in
request-color's source.
> Thanks in advance. > image1: load-image %./images/couleurprimaire.gif
<<quoted lines omitted: 12>>
> return > label yellow "Maintenir le bouton gauche de la souris enfoncé pour
déplacer les filtres"
> ; at image1/size * 0x1 + 10x120 > return
<<quoted lines omitted: 21>>
> view faces > Bye bye
Hi, Ronald, I had to do a little experimenting to figure this out, because it certainly wasn't obvious to me at first glance. The solution that I think you are looking for is remarkably simple in this case. I shortened the example considerably in order to focus on the key feature that I discovered. Reading the source code for IMAGE it appears as though the effect is initialized by joining the default effect with any new effect, as in: if color [effect: join effect ['colorize color]] In order to affect the correct face, I merely added a path on the pertinent portion. Here is my abbreviated sample code: image1: load-thru/binary http://www.rebol.com/view/nyc.jpg faces: layout [ size 450x480 backdrop water img: image 300x300 image1 below across button image1 70x70 [ img/image: image1 new-color: request-color img/effect: join img/effect ['colorize new-color] show img ] return label yellow "Utiliser les boutons pour changer l'image à analyser" return pos: vh2 90x24 ] view faces Hope this helps. --Scott Jones

 [3/4] from: ronald:gruss:libertysurf at: 10-May-2001 3:24


Hi, Scott, I'm glad to see how fast and how kindly you (from the rebol-list) answer to my questions which must seem quite easy for you. Thanks. But in this case, it doesn't solve my problem : the base of my script was Carl's "Cool Effect Gel" demo script, using a rotary button select thru effects and applying to gel. I'd like to be able to choose the color of the 'multiply' effect (for instance by double-clicking or right-clicking on the gel) Whith 255.0.0 in place of xxxxxx, the gel's color is fixed to red Trying whith request-color, the gel color is black and no color choice appears. When I try
>> request-color/color black ; and put the color to blue I get
== 0.0.255 It should work !!! This script is intended to be used whith children to experiment the effects of colored filters upon other colors. It would be interresting to make 3 of these filters (gel) being able to select each filter color (whith the request-color function) Sorry if I wasn't precise enough, but my english is far away from "perfect" !!! REBOL [] image1: load-thru/binary http://www.rebol.com/view/nyc.jpg image2: load-thru/binary http://www.rebol.com/view/palms.jpg faces: layout [ img: image 300x300 image1 below across button image1 70x70 [img/image: image1 show img] button image2 70x70 [img/image: image2 show img] return pos: vh2 90x24 ] vid-face: get-style 'face append faces/pane v-face: make vid-face [ size: 90x90 pos/text: offset: 340x20 edge: make edge [color: 250.120.40 size: 4x4] color: font: para: text: data: image: none effect: [multiply xxxxxx] feel: make feel [ engage: func [f a e] [ ;intercepts target face events if find [over away] a [ pos/text: f/offset: confine f/offset + e/offset - f/data f/size 0x0 f/parent-face/size f/effect: [multiply xxxxxx] show [f pos] ] if a = 'down [f/data: e/offset ] ] ] ] view faces Bye

 [4/4] from: gjones05:mail:orion at: 10-May-2001 12:37


From: "Ronald Gruss"
> Hi, Scott, > > I'm glad to see how fast and how kindly you (from the rebol-list)
answer to
> my questions which must seem quite easy for you. Thanks. > > But in this case, it doesn't solve my problem : the base of my script
was
> Carl's "Cool Effect Gel" demo script, using a rotary button select
thru
> effects and applying to gel. I'd like to be able to choose the color
of the
> 'multiply' effect (for instance by double-clicking or right-clicking
on the
> gel) > Whith 255.0.0 in place of xxxxxx, the gel's color is fixed to red
<<quoted lines omitted: 5>>
> It should work !!! > This script is intended to be used whith children to experiment the
effects
> of colored filters upon other colors. It would be interresting to make
3 of
> these filters (gel) being able to select each filter color (whith the > request-color function) > > Sorry if I wasn't precise enough, but my english is far away from
perfect
> !!! > REBOL []
<<quoted lines omitted: 30>>
> view faces > Bye
Hi, Ronald, Well, English has been my primary language for 42 years, and I still can't figure the language out! ;-) I'm still not sure that I understand exactly what layout you are looking for, but I've been hacking on two versions this morning. I'll include them both in order to give you further ideas on how to achieve your desired effect. ======== Example One: Changed gel-effects.r to allow right click on image when the selection is set to colorize to change the colorize value. Several problems exists. First, to run this example, save the text in a file. When I cut then paste the text in a REBOL/View console, REBOL locks up. It runs fine from a file. I don't know why this happens. Next, there is at least one additional bug, and this may be a bug in REBOL itself. When the inform windows show with the color selector, the window should be modal as far as I can tell. As you will see the gel-window continues to move while over the color request window. Odd!? And I couldn't figure out a work-around solution. REBOL [] the-image: load-thru/binary http://www.rebol.com/view/palms.jpg effects: [ [contrast 40] [invert] [colorize 0.0.200] [gradcol 1x1 0.0.255 255.0.0] [tint 100] [luma -80] [multiply 80.0.200] [grayscale emboss] [flip 0x1] [flip 1x0] [rotate 90] [reflect 1x1] [blur] [sharpen] ] faces: layout [ size the-image/size backdrop the-image pad 0x20 space 0x2 vh2 yellow "Grab the gel and drag it around." vtext bold "Click on button below to change the effect." across at the-image/size * 0x1 + 10x-40 pos: vh1 90x24 rota: rotary 200 [ v-face/effect: load first rota/data show v-face ] ] rota/data: [] foreach e effects [append/only rota/data form e] my-color: 0.0.200 vid-face: get-style 'face append faces/pane v-face: make vid-face [ size: 100x100 pos/text: offset: 108x92 edge: make edge [color: 250.120.40 size: 4x4] color: font: para: text: data: image: none effect: first effects feel: make feel [ engage: func [f a e] [ ;intercepts target face events if find [over away] a [ pos/text: f/offset: confine f/offset + e/offset - f/data f/size 0x0 f/parent-face/size f/effect: pick effects index? rota/data show [f pos] ] if a = 'down [f/data: e/offset] if a = 'alt-down [ f/data: e/offset if tpos: find pick effects index? rota/data 'colorize [ tpos: next tpos new-color: request-color/color first tpos if not none = new-color [ change tpos new-color change rota/data rejoin ["colorize " new-color] show [f rota] ] ] ] ] ] ] view faces ======== Example Two: In the second example, I have utilized your second interface, but I changed the effects to buttons. I have only included two effects, but hopefully you will get the idea. The multiply effect requires somewhat higher values or you will only see black. REBOL [] image1: load-thru/binary http://www.rebol.com/view/nyc.jpg image2: load-thru/binary http://www.rebol.com/view/palms.jpg faces: layout [ img: image 300x300 image1 below button "Colorize" [ mpos: find img/effect 'colorize either not none = mpos [ mpos: next mpos new-colorize: request-color/color first mpos if not none = new-colorize [ change mpos new-colorize show img ] ][ new-colorize: request-color if not none = new-colorize [ img/effect: join img/effect ['colorize new-colorize] show img ] ] ] button "Multiply" [ mpos: find img/effect 'multiply either not none = mpos [ mpos: next mpos new-multiply: request-color/color first mpos if not none = new-multiply [ change mpos new-multiply show img ] ][ new-multiply: request-color if not none = new-multiply [ img/effect: join img/effect ['multiply new-multiply] show img ] ] ] across button image1 70x70 [img/image: image1 show img] button image2 70x70 [img/image: image2 show img] return pos: vh2 90x24 ] view faces ========= I hope we are getting you closer to the solution for which you are searching. --Scott Jones

Notes
  • Quoted lines have been omitted from some messages.
    View the message alone to see the lines that have been omitted