Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows. Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows. Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows. Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows. Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows. Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows. Black Belt Systems has been shipping world-class Graphics Software since 1989. Our company produced the first morphing software for any desktop PC, and since then, you've seen our special effects in many movies and television shows.
Click on these to see what WinImages can do!
Order Now
Feature List
Did you know...
Animation?!?!
Morphing and Warping
Who uses Winimages?
Reviews by the Pros
User's Comments
F.A.Q.
Contact Us
Screen Shot (FX)
Screen Shot (Morph)
Upgrade Details
Documentation
WinImages Art
Free Add-ons
Tutorials
System Requirements
Company Info
Technical Support

Easy Morph
    • Tutorials
    • Install
WinImages
    • Features
    • Animation
    • Adobe Offer
    • JASC Offer
    • Corel Offer
Opal
    • Effects
    • FAQ
Reflex
    • Download
    • Manual
HDocGen
    • Language

Black Belt Systems graphics products are widely compatible with all 32-bit Microsoft operating systems

Home Page

 
font for this was Fleurons
Art? Not really. We used two characters from the the Fleurons font, and put them in separate layers using the Polished Gold Effect. Then, using the Dither operator, we gently applied vertical and horizontal dither (22:1 and 1:22) to the underlying colored layer to give it the look of cloth. Finally, we used the layer dialog's Emboss operation to pop the Fleurons out a little bit.

Extras!

This page contains some cool add-ons for WinImages R7 (or later.)

For plug-ins, just download and place in your plug-ins directory.

For scripts, just copy them from the page, and save them using the script editor. Once saved, they're ready to use!

You should get the latest version!

You can check the version you have by selecting... Learn About Updates (via Internet) ...from the Help Menu within WinImages F/x while you're online.

If you don't have the latest version, download it now using Internet Explorer by clicking your right mouse button on the following link for the...

WinImages F/x 7.50[d] updater zip file
(This is about a 1.2 megabyte download)

...then selecting Save Target As ...from the context menu that appears.

Once it is downloaded, unzip it using WinZip 7 or later, and replace the files in your installation that are supplied in the ZIP archive by following the directions in the text file within the archive.

That's all there is to the update. Your R7 registration will continue to work with this update.

This will ensure that the add-ons you find here will work as designed. Don't be surprised if we've updated WinImages - if bugs are found, or we think something needs to be added, we will update the software. That's just one of the things that makes us different from "the other guys."

You'll also want to consider animation. All of these scripts can animate, via the area selection size, shape and position. In addition, you could, if you were feeling slightly industrious, modify one or more parameters to a script by using the TLPOS() and TPOS() scripting commands; they will allow you to easily change any value over the length of a timeline.

Important Notes

Almost without exception, the scripted effects shown here are intended for use in an image layer. This is because in order to get many types of interesting effects, "odd" things are done at the edges of the selections, and then these are hidden by knocking them out, or partially out, with the alpha channel for the layer.

Many effects will not work as designed when generated against the edge of an image (and of course, that means that the entire image area selection is not useful for them) so again, if you need something up against an edge, create a layer, one larger than the master image size if you need to get to all the edges at once (just create a new image of any size, then "attach" it in the layer control dialog), create the effect in it, then position the layer for the edge intersection(s) you want.

Effects created in image layers are incredibly flexible and malleable - we encourage you to spend some time experimenting with layers!

Scripts

All of the following scripts require FX 7.00h or later:

Plug-Ins

Here are the goodies!

Script to make Saturated Random Annular Rings

Script Result

Ok, we confess. We cribbed all but the last line of this script from Ben's saturated asterisms example in the docs. We just replaced the ASTERIZE() command in line 140 with an ANNULAR() command and threw out the lines that calculated the width and number of arms!

Because this script doesn't set the annular profiles, you can set the character of the annular ring, via the profiles, any way you want and those are the kinds of annular rings the script will produce. The ones above use the stock "Bright Ring" preset. Neat, eh?


 10 r=rnd() * 1: g=rnd() * 1: b=rnd() * 1: s=rnd() * 100
 20 mi = r
 30 if g < mi then mi = g
 40 if b < mi then mi = b
 50 r = r - mi
 60 g = g - mi
 70 b = b - mi
 80 ma = r
 90 if g > ma then ma = g
100 if b > ma then ma = b
110 r = (r / ma) * 255
120 g = (g / ma) * 255
130 b = (b / ma) * 255
140 a=ANNULAR(r, g, b, s, 1)


Script to make tree bark texture

Script Result

The texture in this script owes its linear look to the larger Y dimension fed to the DITHER() operator in line 100. If you wanted the bark texture to go horizontally, you'd feed the dither operator 5,1 instead of 1,5. Of course, you can make the texture longer or shorter by changing the 5, and you can change its aspect ratio by changing the 1.

The nifty emboss onto the grey backdrop was done with a layer dialog emboss operation. Note that this texture was placed upon a middle grey; that's because an emboss needs to have room to brighten and darken, so you can't really emboss on black or white. Almost any medium color or colors will work, though. Note the black edge around the bark; you can turn that off in line 20, if you prefer.

The font is IMPACT, by the way, another standard windows font.


 10 REM General bark
 15 pushmask
 20 z=1:REM set to 1 for no black edge
 30 w=3
 40 REM r,g and b are the bark colors
 50 r=109:g=56:b=38
 60 r1=226:g1=184:b1=171
 70 dr=r1-r:dg=g1-g:db=b1-b
 80 a=makealpha(0,0,0,255)
 90 a=colorfill(128,128,128)
100 a=dither(1,5,100,8,0)
110 a=relief(10)
120 a$="chanmap"
130 S = GETPALSIZE(a$)-1
140 IF S > 0 THEN GOTO 170
150  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
160  END
170 S1 = int(S/2)
180 FOR I=0 TO S1
190 E=SETPALETTE(a$,I,"R",(r/S1) * I)
200 E=SETPALETTE(a$,I,"G",(g/S1) * I)
210 E=SETPALETTE(a$,I,"B",(b/S1) * I)
220 NEXT I
230 FOR I=S1 TO S
240 E=SETPALETTE(a$,I,"R",r+((dr/(S-S1)) * (I-S1)))
250 E=SETPALETTE(a$,I,"G",g+((dg/(S-S1)) * (I-S1)))
260 E=SETPALETTE(a$,I,"B",b+((db/(S-S1)) * (I-S1)))
270 NEXT I
280 a=chanmap(3,1)
290 REM if z=0 then end
300 a$="outline"
310 S = GETPALSIZE(a$)-1
320 IF S > 0 THEN GOTO 350
330  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
340  END
350 for I=0 TO S
360 E=SETPALETTE(a$,I,"R",0)
370 E=SETPALETTE(a$,I,"G",0)
380 E=SETPALETTE(a$,I,"B",0)
390 NEXT I
400 a=outfill(w,1,0,1,1,0,0)
410 popmask
420 a=contract(2,20)
430 a=makealpha(0,0,0,255)


Script to make hallucinatory texture

Script Result

This one was done in a transparent layer, then we applied a yellow glow and dropped a black layer underneath it. If you remember the 60's... you weren't there, or you were more wary than some people we know...


 10 REM LSD effect
 20 pushmask
 30 a=colorfill(128,128,128)
 40 a=dither(8,8,100,4,0)
 50 a=relief(4)
 60 a=dither(1,1,100,4,0)
 70 for i=1 to 8
 80 a=variance(4,1,0)
 90 next i
100 a$="outline"
110 S = GETPALSIZE(a$)-1
120 IF S > 0 THEN GOTO 150
130  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
140  END
150 FOR I=0 TO S
160 E=SETPALETTE(a$,I,"R",0)
170 E=SETPALETTE(a$,I,"G",0)
180 E=SETPALETTE(a$,I,"B",0)
190 NEXT I
200 a=outfill(3,1,0,1,1,0,0)
210 popmask
220 a=makealpha(0,0,0,255)


Script to make lightning bolt texture

Script Result

This one was done in a transparent layer, then we dropped a black layer underneath it.


20 a=colorfill(255,0,0)
30 a=scanline(0,1)
40 a=LIGHTNING(20, 80, 10, 4, 100, 255, 255, 0, 50, 10, 10, 1)
50 a=LIGHTNING(20, 90, 10, 4, 100, 255, 255, 0, 50, 10, 10, 1)
60 a=LIGHTNING(20,100, 10, 4, 100, 255, 255, 0, 50, 10, 10, 1)
70 a=makealpha(0,0,0,255)



Script to make simple blue texture

Script Result

This one was done in a transparent layer, then we dropped a grid underneath it. You'll find that the desired amount of blur in line 30 varies with the size of the region being worked on. For smaller areas, you'll probably want to use less blur.


 10 REM Blue Plastic Look
 20 pushmask
 30 a=colorfill(0,0,0)
 40 a=blur(150)
 50 a=hardalpha(64,100)
 60 a=relief(20)
 70 a=colorize(240,100,0,1)
 80 a=blur(20)
 90 a=contract(1,20)
100 popmask
110 a=makealpha(0,0,0,255)


Script to make brushed aluminium texture

Script Result

Two transparent layers, one per word, then a tan bottom layer and two shadow generations. That long, skinny texture arrives courtesy of the 22:1 aspect ratio in the dither operator in line 40. Give you any ideas?


10 pushmask
20 a=expand(2,20)
30 a=TEXTURE(0, 0, 0, 0.5, 0.5, 7, 82, 100, 12, 1, 0, 255, 1, 1, 1)
40 a=blur(100)
50 a=dither(22,1,5,4,1)
60 a=relief(-10)
70 a=contract(1,20)
80 popmask
90 a=makealpha(0,0,0,255)


Script to make bacteria texture

Script Result

This is a cool one. If you don't like the black line around the effect, remove line 330, or simply REM it out.

Here, we put the text in a layer over a very dark (but not black) bottom layer, threw a soft blue glow around the text using the layer dialog glow command, and then added (on another layer) a round selection with the same texture. Icky. :-P


 10 pushmask
 20 a=expand(1,20)
 30 a=colorfill(127,127,127)
 40 for i=1 to 4
 50 a=dither(16,16,100,4,0)
 60 next i
 70 for i=1 to 2
 80 a=variance(4,1,0)
 90 next i
100 a=relief(8)
110 a$="chanmap"
120 S = GETPALSIZE(a$)-1
130 IF S > 0 THEN GOTO 160
140  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
150  END
160 r=0:g=255:b=0
170 FOR I=0 TO S
180 E=SETPALETTE(a$,I,"R",(r/255)*I)
190 E=SETPALETTE(a$,I,"G",(g/255)*I)
200 E=SETPALETTE(a$,I,"B",(b/255)*I)
210 NEXT I
220 a=chanmap(3,1)
230 a$="outline"
240 S = GETPALSIZE(a$)-1
250 IF S > 0 THEN GOTO 280
260  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
270  END
280 FOR I=0 TO S
290 E=SETPALETTE(a$,I,"R",0)
300 E=SETPALETTE(a$,I,"G",0)
310 E=SETPALETTE(a$,I,"B",0)
320 NEXT I
330 a=outfill(4,1,0,1,1,0,0)
340 popmask
350 a=makealpha(0,0,0,255)


Script to make gridded texture

Script Result

All we did here was put the text area selection on a blank layer, over a black base layer. Note that because this script uses a plug-in, you'll have to edit the script to tell it where you're keeping your own plugins before it will work for you.


 10 REM change 'p$' to reflect where your plugin is located!
 20 pushmask
 30 a=expand(2,20)
 40 a=colorfill(0,0,0)
 50 p$ = "c:\data\plugins\stripple.wip"
 60 a=loadplug(p$)
 70 a=puinteger(0,4):         REM width
 80 a=puinteger(1,0):         REM horizontal offset
 90 a=puinteger(2,0):         REM vertical offset
100 a=purgba(0,128,0,128,255):REM the effect color (purple)
110 a=pucheck(0,1):           REM stipple mode
120 a=puradio(3,1):           REM odd parity
130 a=plugin()
140 a=derivative(1,0,0)
150 popmask
160 a=makealpha(0,0,0,255)


Script to make plastic texture

Script Result

Construction of the image was by putting the text selection in a new layer, putting a gray layer below it, and then shadowing the text. The shadow was set to 66% opacity for a softer look.

This effect was placed in a new layer. The correct operation of this script depends on the effect being placed in an image that is white. New layers are initially white (though they also have alpha channel that makes them transparent.)

The reason that you want to put this on a white surface is because the relief() operation builds the curved texture based on a blur() between the black colorfill(0,0,0) and the white background. If there is a black background, the blur() will not generate any useful results, and the relief(), in turn, will not generate the curve - it'll just sort of sputter and do nothing.

You can reverse the way it works by changing the colorfill() command to fill with white and then placing the effect on black. You might want to change the sign of the relief() operation at that point.

The color and the highlights depends on the palette you set for the channel map operator, which is intentionally not set in this particular script.


 10 REM Plastic effect
 20 pushmask
 30 a=expand(1,20)
 40 a=colorfill(0,0,0)
 50 a=blur(100)
 60 a=relief(-20)
 70 a=blur(20)
 80 a=chanmap(3,1)
 90 popmask
100 a=makealpha(0,0,0,255)


Script to make colorful block texture

Script Result

This was applied on new transparent layer, a grey layer was added beneath it, then a reversed emboss on the text layer was performed from the layer dialog, with intensity set to 5.

We're using a technique in here (and elsewhere) you should be aware of if you want to use the dither() command to make textures.

Looking at the script, you can see we fill with 50% grey (127,127,127) prior to applying dither(). That's because dither() moves what is there up and down; so if what is there first is in the middle, it has equal potential to move either way. dither() doesn't just generate noise and replace what's there, it affects what is there. So to use it to make pure noise, you give it a "level playing field" and it will do so.

If we had started with white or black, on average, 1/2 of the dither() command results would have no effect, because the image is already "up against the wall", so to speak.


10 a=colorfill(127,127,127)
20 for i=1 to 3
30 a=dither(16,16,100,4,0)
40 next i
50 a=RTILE(0,0,127,10,10,5,5,25,1)
60 a=makealpha(0,0,1,255)


Script to make stained glass texture

Script Result

For the main effect, this uses the same initial steps as the colorful blocks script, but instead of rtile(), it uses contour().

Then we use the outline fill operator to place a white line inside the edge of the area selection, because this effect blends too much with black.


 10 a=colorfill(127,127,127)
 30 for i=1 to 3
 40 a=dither(16,16,100,4,0)
 50 next i
 60 a=contour(0,0,0,0,0,0,0,32,0)
 70 a$="outline"
 80 S = GETPALSIZE(a$)-1
 90 IF S > 0 THEN GOTO 120
100  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
110  END
120 FOR I=0 TO S
130 E=SETPALETTE(a$,I,"R",255)
140 E=SETPALETTE(a$,I,"G",255)
150 E=SETPALETTE(a$,I,"B",255)
160 NEXT I
170 a=outfill(2,1,0,1,1,0,0)
180 a=makealpha(0,0,0,255)


Script to make ecology texture

Script Result

 10 a=colorfill(0,0,0)
 20 a$="outline"
 30 S = GETPALSIZE(a$)-1
 40 IF S > 0 THEN GOTO 70
 50  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
 60  END
 70 FOR I=0 TO S
 80 E=SETPALETTE(a$,I,"R",255)
 90 E=SETPALETTE(a$,I,"G",255)
100 E=SETPALETTE(a$,I,"B",255)
110 NEXT I
120 a=outfill(8,1,0,1,1,0,0)
130 a=blur(100)
140 a=relief(8)
150 a=dither(16,16,50,4,0)
160 a=ELEVATIONS(127, 50, 0)
170 a=ELEVATIONS(127, 50, 0)
180 a=makealpha(0,0,0,255)


Script to make plasma texture

Script Result

Here's a script that has another "goodie" in it for you - a palette gradient segment generator. You can use this subroutine to set up nice multiple-segment gradients in palettes. The way it works is you call the generator with the start (S) and end (E) indexes of the portion of the palette you want to set. You also set up (r,g,b) and (r1,g1,b1) with the starting and ending colors, respectively, of the range. GOSUB to the generator, and it will set that range. You can set as many ranges as you like.

But do take care to ask the palette how many colors it has before you start. Looking at this example, you can see that we ask, then divide the palette into thirds (not really caring how many colors it has) and develop gradients for those thirds. Everything else is taken care of by the operator that uses the palette. This technique will work for any palette, not just the texture() operator's.

The script just uses the texture generator to produce the texture for the text. In the example above, we put the output on a transparent layer, put a black layer underneath it, and added an orange glow for contrast (any time you have a texture color that reaches the edge of a selection, you probably will want to isolate that color with a shadow, glow, edge or outline... it's an art thing... :-)


 10 a$="texture"
 20 B = GETPALSIZE(a$)-1
 30 IF B > 0 THEN GOTO 60
 40  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
 50  END
 60 S=0:E=int(B/3):r=0:g=0:b=0:r1=0:g1=0:b1=0
 70 gosub 800
 80 S=E:E=S*2:r=0:g=0:b=0:r1=255:g1=0:b1=255
 90 gosub 800
100 S=E:E=B:r=r1:g=g1:b=b1:r1=255:g1=255:b1=255
110 gosub 800
120 a=TEXTURE(5,0,0,0.1,5,8,69,69,2,1,0,255,1,1,1)
130 a=makealpha(0,0,0,255)
140 end

800 REM Gradient Palette Segment Generator
810 M=E-S
820 N=0
830 FOR I=S TO E
840 F=N/M
850 R=1-F
860 qq=SETPALETTE(a$,I,"R",(R*r)+(F*r1))
870 qq=SETPALETTE(a$,I,"G",(R*g)+(F*g1))
880 qq=SETPALETTE(a$,I,"B",(R*b)+(F*b1))
890 N=N+1
900 NEXT I
910 RETURN


Script to make checker texture

Script Result

Here's a fun one; fill with black, stipple with white, bingo, you have a checkerboard. And who uses checkerboards? Taxis!

We plopped the effect onto a blank layer, dropped a yellow layer underneath it, and then used the dialog emboss effect. But emboss doesn't do quite the right thing when colors are fully on (at 255), so we changed the mode of the emboss layer to hard light, which does a great job of giving the edges of the effect some drama.

As with all scripts that use plugins, in order to make this work for you, you'll have to make sure that line 30 correctly reflects where you are keeping your plug-ins.


 10 a=colorfill(0,0,0):REM black object
 20 p$ = "c:\data\plugins\stripple.wip"
 30 a=loadplug(p$)
 40 a=puinteger(0,4):           REM width
 50 a=puinteger(1,0):           REM horizontal offset
 60 a=puinteger(2,0):           REM vertical offset
 70 a=purgba(0,255,255,255,255):REM the effect color white
 80 a=pucheck(0,1):             REM stipple mode
 90 a=puradio(3,1):             REM odd parity
100 a=plugin():                 REM white checkers
110 a=makealpha(0,0,1,255)


Script to make marble texture

Script Result

This script is similar to the plasma script, but uses different parameters for the texture() operator, and creates a radically different palette.

All we did here was generate the effect to a transparent layer, and then put a black layer under it.

You can vary the color of the marble veins by adjusting (mr,mg,mb) beginning at line 20.


 10 pushmask
 20 mr=0:REM these three set the marble color
 30 mg=0
 40 mb=96
 50 a$="texture"
 60 B = GETPALSIZE(a$)-1
 70 IF B > 0 THEN GOTO 100
 80  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
 90  END
100 S=0:E=B:r=255:g=255:b=255:r1=255:g1=255:b1=255:REM all white
110 gosub 800
120 S=B/8:E=(B/8)*2:r1=mr:g1=mg:b1=mb
130 gosub 800
140 S=(B/8)*2:E=(B/8)*3:r=r1:g=g1:b=b1:r1=255:g1=255:b1=255
150 gosub 800
160 S=(B/8)*5:E=(B/8)*6:r=255:g=255:b=255:r1=mr:g1=mg:b1=mb
170 gosub 800
180 S=(B/8)*6:E=(B/8)*7:r=r1:g=g1:b=b1:r1=255:g1=255:b1=255
190 gosub 800
200 a=TEXTURE(5,0,0,0.25,2,8,74,65,8,1,0,255,1,0,1)
204 a=contract(1,20)
205 a=makealpha(0,0,0,255)
206 popmask
210 end

800 REM Palette Gradient Segment Generator
810 M=(E-S)+1
820 N=0
830 FOR I=S TO E
840 F=N/M
850 R=1-F
860 qq=SETPALETTE(a$,I,"R",(R*r)+(F*r1))
870 qq=SETPALETTE(a$,I,"G",(R*g)+(F*g1))
880 qq=SETPALETTE(a$,I,"B",(R*b)+(F*b1))
890 N=N+1
900 NEXT I
910 RETURN


Plug-in adjusts R, G, B and A independently by percentage

Plug-in Dialog

This plug-in allows you to adjust the red, green, blue and alpha channels of your image by a percentage. 0% is no change; negative values decrease the channel, and positive values increase the channel. These are true percentages, enter 50 for a 50% increase, not .5. Alpha is only affected if the image has an active alpha channel.

 
Right Click Here and select "Save Target As" from the context menu.

Save the zip somewhere, then extract the RGB adjust plug-in to the same location where your WinImages plugins directory is kept.


Script to make galactic texture

Script Result

To make the image above, we ran the script on a text selection (Impact) in a layer, then put a black base layer underneath it. Finally, we added a yellow glow using the layer dialog's glow tool. That's it!


 10 pushmask
 20 a=expand(1,20)
 30 a=colorfill(128,128,128)
 40 a=dither(3,3,100,4,1)
 50 a=colorize(250,100,50,1)
 60 a=shine(7,7,100,95)
 70 a$="outline"
 80 S = GETPALSIZE(a$)-1
 90 IF S > 0 THEN GOTO 120
100  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
110  END
120 FOR I=0 TO S
130 E=SETPALETTE(a$,I,"R",0)
140 E=SETPALETTE(a$,I,"G",0)
150 E=SETPALETTE(a$,I,"B",0)
160 NEXT I
170 a=outfill(3,1,0,1,1,0,0)
180 popmask
190 a=makealpha(0,0,0,255)


Script to make US flag texture

Script Result

This script produces an American flag texture. We've placed it in a layer here, put a warp layer above it and applied the wave operator to the warp. Nifty, eh?


 10 REM American Flag Texture
 20 pushmask
 30 sx1 = getx1(0)
 40 sy1 = gety1(0)
 50 sx2 = getx2(0)
 60 sy2 = gety2(0)
 70 z=0:w=sx2-sx1:h=sy2-sy1
 80 x1=sx1:x2=sx2
100 for i=0 to 12
110 y1=sy1 + ((h/13)*i):y2=y1+(h/13)
120 a=setmask(0)
130 a=maskrect(x1,y1,x2,y2,255)
140 smaskcombine
150 if z=0 then goto 170
160 z=0:r=255:g=255:b=255:goto 180
170 z=1:r=255:g=0:b=0
180 a=colorfill(r,g,b)
190 next i
200 bw = w * .4:bh = ((h/13)*7)-1
210 x1 = sx1
220 x2 = x1 + bw
230 y1 = sy1
240 y2 = sy1 + bh
250 a=setmask(0)
260 a=maskrect(x1,y1,x2,y2,255)
270 smaskcombine
280 a=colorfill(0,48,166)
290 gosub 340:gosub 340
300 a=setmask(255):smaskcombine
310 a=dither(22,1,22,4,1)
320 a=dither(1,22,22,4,1)
330 POPMASK:END

340 sh = bh/9: sw = bw / 6:z=0
350 for i=0 to 8
360 if z=1 then goto 380
370 z=1:xo=0:st=5:ra=(sw+sh)/4:goto 390
380 z=0:xo=sw/2:st=4:ra=(sw+sh)/4
390 if ra < 1 then ra=1
400 for j=0 to st
410 x1 = sx1+xo+(j*sw):x2=x1+sw
420 y1 = sy1+(i*sh):y2=y1+sh
430 a=seloval(x1+sw/2,y1+sh/2,ra,ra)
440 smaskcombine
450 a=ASTERIZE(255,255,255,0,50,0,5,0,1,1)
460 next j
470 next i
480 return


Script to make gold wire texture

Note: Requires the RGB Adjust plug-in.

Script Result

This works around the edge of the area selection. Here, we used a text selection, an I-Shape (the default triangle) and an ellipse, then we produced a fine shadow by duplicating the effect layer, turning off opaque fills, filling with black, turning on all the alpha and then blurring the layer. Finally, we set the layer opacity to 33 or so.

The font is Impact.


 10 gosub 400:gosub 500
 20 pushmask
 30 a=contract(7,0)
 40 invertmask:smaskcombine
 50 pushmask
 60 a=feathermask(35)
 70 a=makealpha(0,0,0,255)
 80 a=colorfill(0,0,0)
 90 a=blur(50)
100 a=relief(5)
110 a=histo(0)
120 a=negative(0,1,1,1,0)
130 a=contract(4,20)
140 smaskcombine
150 a=makealpha(0,0,0,255)
160 r=60:g=30:b=0:gosub 190
170 popmask
180 end

190 p$ = "c:\data\plugins\rgb_adjust.wip"
200 a=loadplug(p$)
210 a=pufloat(0,r):            REM red
220 a=pufloat(1,g):            REM green
230 a=pufloat(2,b):            REM blue
240 a=pufloat(3,0):            REM alpha
250 a=plugin():                REM apply gold color on silver
260 return

400 REM makes sine wave cycles
410 c = 2.25
420 p$ = "histo"
430 pi = 3.141592653979382
440 for i=0 to 200
450 j = (i/200)*2
460 v = ((1+sin(j*pi*c))/2)*255
470 a = SETPROF(p$,i,v)
480 next i
490 return

500 REM rampulates from 0-1
510 p$="histo"
520 for i=0 to 200
540 a=SETPROF(p$,i,GETPROF(p$,i)*clamp((i/200)*2,0,1))
550 next i
560 return


Script to make chrome texture

Script Result

Easy chrome effect. Place it in a white, fully transparent layer. Like most of these effects, it's designed around a particular width, so you'll want to use a wide font.


 10 pushmask
 20 a=feathermask(30)
 30 a=makealpha(0,0,0,255)
 40 a=colorfill(0,0,0)
 42 de = 69
 44 REM a=TEXTURE(0,0,0,0.1,5,8,de,de,2,1,0,255,0,1,1)
 50 a=blur(100)
 60 a=relief(8)
 70 gosub 200:gosub 300
 80 a=histo(0)
 90 a=negative(0,1,1,1,0)
100 popmask
110 a=makealpha(0,0,0,255)
120 a=bright(22)
130 end

200 REM makes sine wave cycles
210 c = 2.25
220 p$ = "histo"
230 pi = 3.141592653979382
240 for i=0 to 200
250 j = (i/200)*2
260 v = ((1+sin(j*pi*c))/2)*255
270 a = SETPROF(p$,i,v)
280 next i
290 return

300 REM rampulates from 0-1
310 p$="histo"
320 for i=0 to 200
340 a=SETPROF(p$,i,GETPROF(p$,i)*clamp((i/200)*2,0,1))
350 next i
360 return


Script to make polished gold texture

Note: Requires the RGB Adjust plug-in.

Script Result

Easy gold effect. Place it in a white, fully transparent layer. Like most of these effects, it's designed around a particular width, so you'll want to use a wide font.


 10 pushmask
 20 a=feathermask(30)
 30 a=makealpha(0,0,0,255)
 40 a=colorfill(0,0,0)
 50 a=blur(100)
 60 a=relief(8)
 70 gosub 400:gosub 500
 80 a=histo(0)
 90 a=negative(0,1,1,1,0)
100 popmask
110 a=makealpha(0,0,0,255)

120 p$ = "c:\data\plugins\rgb_adjust.wip"
130 a=loadplug(p$)
140 a=pufloat(0,65):           REM red
150 a=pufloat(1,25):           REM green
160 a=pufloat(2,0):            REM blue
170 a=pufloat(3,0):            REM alpha
200 a=plugin():                REM apply gold color on silver

399 END

400 REM makes sine wave cycles
410 c = 2.25
420 p$ = "histo"
430 pi = 3.141592653979382
440 for i=0 to 200
450 j = (i/200)*2
460 v = ((1+sin(j*pi*c))/2)*255
470 a = SETPROF(p$,i,v)
480 next i
490 return

500 REM rampulates from 0-1
510 p$="histo"
520 for i=0 to 200
540 a=SETPROF(p$,i,GETPROF(p$,i)*clamp((i/200)*2,0,1))
550 next i
560 return


Script to make polished copper texture

Note: Requires the RGB Adjust plug-in.

Script Result

Easy copper effect. Place it in a white, fully transparent layer. Like most of these effects, it's designed around a particular width, so you'll want to use a wide font.


 10 pushmask
 20 a=feathermask(30)
 30 a=makealpha(0,0,0,255)
 40 a=colorfill(0,0,0)
 50 a=blur(100)
 60 a=relief(8)
 70 gosub 400:gosub 500
 80 a=histo(0)
 90 a=negative(0,1,1,1,0)
100 popmask
110 a=makealpha(0,0,0,255)

120 p$ = "c:\data\plugins\rgb_adjust.wip"
130 a=loadplug(p$)
140 a=pufloat(0,65):           REM red
150 a=pufloat(1,0):            REM green
160 a=pufloat(2,0):            REM blue
170 a=pufloat(3,0):            REM alpha
200 a=plugin():                REM apply copper color on silver

399 END

400 REM makes sine wave cycles
410 c = 2.25
420 p$ = "histo"
430 pi = 3.141592653979382
440 for i=0 to 200
450 j = (i/200)*2
460 v = ((1+sin(j*pi*c))/2)*255
470 a = SETPROF(p$,i,v)
480 next i
490 return

500 REM rampulates from 0-1
510 p$="histo"
520 for i=0 to 200
540 a=SETPROF(p$,i,GETPROF(p$,i)*clamp((i/200)*2,0,1))
550 next i
560 return


Script to make silver inlaid in gold texture

Note: Requires the RGB Adjust plug-in.

Script Result

Easy inlaid effect. Place it in a white, fully transparent layer. Like most of these effects, it's designed around a particular width, so you'll want to use a wide font.



  4 gosub 400:gosub 500
  5 bo = 75:re=4
 10 pushmask
 11 a=contract(9,0)
 12 invertmask:smaskcombine
 14 pushmask
 17 a=feathermask(bo*.666)
 18 a=makealpha(0,0,1,255)
 19 a=colorfill(0,0,0):REM outer bevel black fill
 20 a=blur(50)
 21 a=relief(re)
 23 a=histo(0)
 24 a=negative(0,1,1,1,0):popmask
 25 a=makealpha(0,0,1,255):r=60:g=30:b=0:gosub 120

 28 invertmask:smaskcombine:a=feathermask(20)

 58 a=colorfill(0,0,0)
 59 a=blur(100)
 60 a=relief(0-re)
 80 a=histo(0)
110 a=makealpha(0,0,1,255)
111 REM a=bright(22)
112 popmask
113 a=makealpha(0,0,0,255)
116 a=sharpen(50,20)


119 end

120 p$ = "c:\data\plugins\rgb_adjust.wip"
130 a=loadplug(p$)
140 a=pufloat(0,r):            REM red
150 a=pufloat(1,g):            REM green
160 a=pufloat(2,b):            REM blue
170 a=pufloat(3,0):            REM alpha
200 a=plugin():                REM apply gold color on silver
210 return

400 REM makes sine wave cycles
410 c = 2.25
420 p$ = "histo"
430 pi = 3.141592653979382
440 for i=0 to 200
450 j = (i/200)*2
460 v = ((1+sin(j*pi*c))/2)*255
470 a = SETPROF(p$,i,v)
480 next i
490 return

500 REM rampulates from 0-1
510 p$="histo"
520 for i=0 to 200
540 a=SETPROF(p$,i,GETPROF(p$,i)*clamp((i/200)*2,0,1))
550 next i
560 return


Script to make fort knox texture

Note: Requires the RGB Adjust plug-in.

Script Result

Fort Knox effect. Place it in a white, fully transparent layer. The larger the font is, the more the "bricks" will show up.


 10 pushmask
 20 a=feathermask(30)
 30 hfmask
 40 smaskcombine
 50 a=makealpha(0,0,1,255)
 60 a$="texture"
 70 B = GETPALSIZE(a$)-1
 80 IF B > 0 THEN GOTO 110
 90  PRINT "WHOOPS! ";a$;" HAS NO SIZE!"
100  END
110 S=0:E=int(B/2):r=0:g=0:b=0:r1=147:g1=45:b1=222:gosub 800
120 S=E:E=B:r=r1:g=g1:b=b1:r1=255:g1=255:b1=255:gosub 800
130 a=TEXTURE(5,0,0,0.1,5,8,69,69,2,1,0,255,1,1,1)
140 a=RTILE(0,0,0,10,10,5,5,50,1)
150 a=relief(8)
160 p$ = "c:\data\plugins\rgb_adjust.wip"
170 a=loadplug(p$)
180 a=pufloat(0,66)
190 a=pufloat(1,33)
200 a=pufloat(2,0)
210 a=pufloat(3,0)
220 a=plugin():a=plugin()
230 popmask
240 a=makealpha(0,0,0,255)
250 END

800 REM Palette Gradient Segment Generator
810 M=(E-S)+1
820 N=0
830 FOR I=S TO E
840 F=N/M
850 R=1-F
860 qq=SETPALETTE(a$,I,"R",(R*r)+(F*r1))
870 qq=SETPALETTE(a$,I,"G",(R*g)+(F*g1))
880 qq=SETPALETTE(a$,I,"B",(R*b)+(F*b1))
890 N=N+1
900 NEXT I
910 RETURN


Script to make distressed glass texture

Script Result

Distressed glass effect. Place it in a new layer, then set the layer to "Add on Gray" mode over the image you want the glass to appear on.


10 pushmask
20 a=setmask(255)
30 a=colorfill(255,255,255)
40 popmask
50 a=colorfill(0,0,0)
60 a=dither(2,2,25,4,1)
70 a=setmask(255)
80 a=relief(8)


Script to make wired texture

Script Result

Wired effect.


 10 r=255:g=255:b=255
 20 pushmask
 30 hfmask
 40 a=colorfill(r,g,b):REM fill with color
 50 smaskcombine
 60 a=feathermask(50)
 70 invertsel
 80 smaskcombine
 90 hfmask
100 a=colorfill(0,0,0):REM fill with black
110 popmask
120 pushmask
130 a=feathermask(30)
140 a=blur(40)
150 a=makealpha(0,0,1,255)
160 a=relief(8)
170 a=variance(3,1,0)
180 a=sharpen(100,20)
190 popmask
200 a=makealpha(0,0,0,255)
210 END


Script to make patch texture

Script Result

Patches effect. We created a blue-jean like texture with a blue layer, 22x1 and 1x5 dithers at 11% effect and different seeds; then using the circle + hold square and an arrow I-Shape we made created the patch layers and moved them around until it was pleasing. You can see an artifact here that arose because we duplicated the right arrow and flipped it to make the left arrow... so the lighting comes from the wrong direction on the left arrow. You, of course, are smarter than we are and wouldn't make such an error, right?


 10 gosub 400:gosub 500
 20 bo = 75:re=5
 30 pushmask
 40 a=contract(4,0)
 50 invertmask:smaskcombine
 60 pushmask
 70 a=feathermask(bo*.666):hfmask:a=feathermask(20)
 80 a=makealpha(0,0,1,255)
 90 a=colorfill(0,0,0):REM outer bevel black fill
100 a=blur(50):a=relief(4)
110 a=relief(re):r=80:g=0:b=0:gosub 300
120 a=dither(22,1,11,5,1):a=dither(1,22,11,5,1)
130 REM a=histo(0)
140 REM a=negative(0,1,1,1,0)
150 popmask
160 a=makealpha(0,0,1,255)

170 invertmask:smaskcombine:a=feathermask(20)

180 a=colorfill(0,0,0)
190 a=blur(200):a=relief(-8)
200 a=dither(22,1,11,4,1):a=dither(1,22,11,4,1)
210 REM a=relief(0-re)
220 r=0:g=0:b=50:gosub 300
230 popmask
240 a=makealpha(0,0,1,255)

250 end

300 p$ = "c:\data\plugins\rgb_adjust.wip"
310 a=loadplug(p$)
320 a=pufloat(0,r):            REM red
330 a=pufloat(1,g):            REM green
340 a=pufloat(2,b):            REM blue
350 a=pufloat(3,0):            REM alpha
360 a=plugin():                REM apply gold color on silver
370 return

400 REM makes sine wave cycles
410 c = 2.25
420 p$ = "histo"
430 pi = 3.141592653979382
440 for i=0 to 200
450 j = (i/200)*2
460 v = ((1+sin(j*pi*c))/2)*255
470 a = SETPROF(p$,i,v)
480 next i
490 return

500 REM rampulates from 0-1
510 p$="histo"
520 for i=0 to 200
540 a=SETPROF(p$,i,GETPROF(p$,i)*clamp((i/200)*2,0,1))
550 next i
560 return



FX component
FX Screen Shot
 
Morph Component
Morph Screen Shot