home *** CD-ROM | disk | FTP | other *** search
/ Amiga Magazin: Amiga-CD 2000 April & May / AMIGA_2000_04.iso / amiga-magazin / visualengineer / ve-full.lha / arexx / VisualBorderDemo.rexx < prev    next >
OS/2 REXX Batch file  |  1999-06-06  |  7KB  |  381 lines

  1. /*
  2.  
  3.    v1.20 Visual Border
  4.  
  5.    Marko Seppänen
  6.    marko.seppanen@wwnet.fi
  7.  
  8. */
  9.  
  10.  
  11. address IMAGEENGINEER
  12.  
  13. Options results
  14. signal on error            /* Setup a place for errors to go */
  15.  
  16. if arg()=0 then exit
  17. x=arg(1)
  18.  
  19. parse var x pic bordertype arguments
  20. arguments=strip(arguments,B)
  21. space=0
  22.  
  23.  
  24. MARK pic PRIMARY
  25. PROJECT_INFO pic WIDTH
  26. picwidth=result
  27. PROJECT_INFO pic HEIGHT
  28. picheight=result
  29. PROJECT_INFO pic ZOOM
  30. origzoomvalue=result
  31.  
  32.  
  33. if bordertype="" then do
  34.  
  35.   if exists("ie:prefs/visualborderd.cfg") == "1" then
  36.     do
  37.       call open("temp","ie:prefs/visualborderd.cfg","R")
  38.       values=readln("temp")
  39.       parse var values ok bordertype .
  40.       call close("temp")
  41.     end
  42.   else
  43.     do
  44.       bordertype=1
  45.     end
  46.  
  47.   ' FORM "Visual Border" "Use|Cancel"',
  48.   ' CYCLE,"Bordertype","EdgeShade|Scratch|Gradient|Niche|Raised|Glow|RoundCorner|Polka|HighLight|ShinyShape|Button|Mask|Texture|BasicTools",'bordertype''
  49.  
  50.   values=result
  51.   parse var values ok bordertype .
  52.  
  53.   if ok = 0 then exit
  54.  
  55.   call open("temp","ie:prefs/visualborderd.cfg","W")
  56.   res=writeln("temp",values)
  57.   call close("temp")
  58.  
  59. end
  60.  
  61.  
  62. select
  63.  
  64.   when bordertype == 2 | upper(bordertype) == "GRADIENT" then do
  65.  
  66.     if arguments="" then do
  67.  
  68.       if exists("ie:prefs/visualborderdgradient.cfg") == "1" then
  69.         do
  70.           call open("temp","ie:prefs/visualborderdgradient.cfg","R")
  71.           values=readln("temp")
  72.           parse var values ok bsize .
  73.           call close("temp")
  74.         end
  75.       else
  76.         do
  77.           bsize=5
  78.         end
  79.  
  80.  
  81.       ' FORM "Visual Border - gradient" "Use|Cancel"',
  82.       ' INTEGER,"Border size",1,40,'bsize',SLIDER'
  83.  
  84.       values=result
  85.       parse var values ok bsize .
  86.       if ok = 0 then exit
  87.  
  88.       call open("temp","ie:prefs/visualborderdgradient.cfg","W")
  89.       res=writeln("temp",values)
  90.       call close("temp")
  91.  
  92.     end
  93.  
  94.     else parse var arguments bsize .
  95.  
  96.  
  97.     OPEN "ie:alpha/gradient.alpha" COLOUR
  98.     grad=result
  99.  
  100.     SCALE grad 50 picheight BEST
  101.     grad2=result
  102.  
  103.     PROJECT_SET grad2 ZOOM origzoomvalue
  104.  
  105.     CLOSE grad
  106.  
  107.     MARK grad2 ALPHA
  108.     MARK grad2 PRIMARY
  109.     MARK pic SECONDARY
  110.  
  111.     COMPOSITE "-46"+bsize 0 ADD
  112.     x0=result
  113.  
  114.     MARK x0 SECONDARY
  115.  
  116.     COMPOSITE picwidth-4-bsize 0 MULTIPLY
  117.     x1=result
  118.  
  119.     CLOSE x0
  120.  
  121.     MARK x1 SECONDARY
  122.  
  123.     COMPOSITE picwidth-4-bsize 0 MULTIPLY
  124.     x1b=result
  125.  
  126.  
  127.     ROTATE x1b 270 FAST
  128.     x2=result
  129.  
  130.     CLOSE x1b
  131.  
  132.     if picwidth~=picheight then
  133.     do
  134.  
  135.       SCALE grad2 50 picwidth BEST
  136.       grad2b=result
  137.  
  138.       CLOSE grad2
  139.  
  140.       grad2=grad2b
  141.  
  142.     end
  143.  
  144.     CLOSE x1
  145.  
  146.     MARK grad2 ALPHA
  147.     MARK grad2 PRIMARY
  148.     MARK x2 SECONDARY
  149.  
  150.     COMPOSITE "-46"+bsize 0 ADD
  151.     x3=result
  152.  
  153.     CLOSE x2
  154.  
  155.     MARK x3 SECONDARY
  156.     COMPOSITE picheight-4-bsize 0 MULTIPLY
  157.     x4=result
  158.  
  159.     CLOSE x3
  160.  
  161.     MARK x4 SECONDARY
  162.     COMPOSITE picheight-4-bsize 0 MULTIPLY
  163.     x4b=result
  164.  
  165.     CLOSE x4
  166.     CLOSE grad2
  167.  
  168.     ROTATE x4b 90 FAST
  169.     x5=result
  170.  
  171.     CLOSE x4b
  172.  
  173.   end
  174.  
  175.  
  176.  
  177.   when bordertype == 6 | upper(bordertype) == "ROUNDCORNER" then do
  178.  
  179.     /* DO THE CORNER */
  180.  
  181.     BRIGHTNESS pic "-255"
  182.     black=result
  183.  
  184.     RESIZE black picwidth picheight TILE
  185.     black2=result
  186.  
  187.     CLOSE black
  188.  
  189.  
  190.     if exists("ie:alpha/Visual-roundcorner.alpha") == "0" then do
  191.       'REQUEST "Please download VE-Extras.lha" "Ok"'
  192.       exit
  193.     end
  194.  
  195.     OPEN "ie:alpha/Visual-roundcorner.alpha" COLOUR
  196.     cornerA=result
  197.  
  198.     MARK cornerA PRIMARY
  199.     MARK cornerA ALPHA
  200.     MARK black2 SECONDARY
  201.     COMPOSITE 0 0 ADD
  202.     corner1=result
  203.  
  204.     CLOSE black2
  205.  
  206.     REFLECT_X cornerA
  207.     cornerB=result
  208.     CLOSE cornerA
  209.  
  210.     MARK cornerB PRIMARY
  211.     MARK cornerB ALPHA
  212.     MARK corner1 SECONDARY
  213.     COMPOSITE picwidth-3 0 ADD
  214.     corner2=result
  215.  
  216.     CLOSE corner1
  217.  
  218.     REFLECT_Y cornerB
  219.     cornerC=result
  220.     CLOSE cornerB
  221.  
  222.     MARK cornerC PRIMARY
  223.     MARK cornerC ALPHA
  224.     MARK corner2 SECONDARY
  225.     COMPOSITE picwidth-3 picheight-3 ADD
  226.     corner3=result
  227.  
  228.     CLOSE corner2
  229.  
  230.     REFLECT_X cornerC
  231.     cornerD=result
  232.     CLOSE cornerC
  233.  
  234.     MARK cornerD PRIMARY
  235.     MARK cornerD ALPHA
  236.     MARK corner3 SECONDARY
  237.     COMPOSITE 0 picheight-3 ADD
  238.     box=result
  239.  
  240.     CLOSE corner3
  241.     CLOSE cornerD
  242.  
  243.  
  244.     /* READY TO CONTINUE */
  245.  
  246.     CALL addspace box,30,WHITE
  247.     spacebox=result
  248.  
  249.     CLOSE box
  250.  
  251.     CONVOLVE spacebox "IE:Convolves/Smooth_Ultra"
  252.     smoothbox=result
  253.  
  254.     CLOSE spacebox
  255.  
  256.  
  257.     if arguments="" then do
  258.  
  259.       if exists("ie:prefs/visualborderdroundcorner.cfg") == "1" then
  260.         do
  261.           call open("temp","ie:prefs/visualborderdroundcorner.cfg","R")
  262.           values=readln("temp")
  263.           parse var values ok smooth adjust .
  264.           call close("temp")
  265.         end
  266.       else
  267.         do
  268.           smooth=90
  269.           adjust=13
  270.         end
  271.  
  272.  
  273.       'FORM "Visual Border - round corner" "Use|Cancel"',
  274.       ' INTEGER,"Edge smoothness",1,100,'smooth',SLIDER',
  275.       ' INTEGER,"Adjust corner",1,25,'adjust',SLIDER'
  276.  
  277.       values=result
  278.       parse var values ok smooth adjust .
  279.  
  280.       if ok = 0 then exit
  281.  
  282.       call open("temp","ie:prefs/visualborderdroundcorner.cfg","W")
  283.       res=writeln("temp",values)
  284.       call close("temp")
  285.  
  286.     end
  287.  
  288.     else parse var arguments smooth adjust .
  289.  
  290.  
  291.     LOWPASS smoothbox adjust adjust
  292.     lowpbox=result
  293.  
  294.     CLOSE smoothbox
  295.  
  296.     CONTRAST lowpbox smooth
  297.     contr=result
  298.  
  299.     CLOSE lowpbox
  300.  
  301.     AUTOCROP contr
  302.     roundbox=result
  303.  
  304.     CLOSE contr
  305.  
  306.     SCALE roundbox picwidth picheight BEST
  307.     box=result
  308.  
  309.     CLOSE roundbox
  310.  
  311.     MARK box PRIMARY
  312.     MARK box ALPHA
  313.     MARK pic SECONDARY
  314.  
  315.     COMPOSITE 0 0 MAX
  316.  
  317.     CLOSE box
  318.  
  319.   end
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328. otherwise do
  329.  
  330.    'REQUEST "You can only use Gradient and RoundCorner -effects in this demoversion." "Ok"'
  331.  
  332.   end
  333.  
  334. end
  335.  
  336.  
  337.  
  338.  
  339.  
  340. exit
  341.  
  342.  
  343.  
  344. addspace:
  345.  
  346.   temppic=arg(1)
  347.   space=arg(2)
  348.   bg=arg(3)
  349.  
  350.   if exists("ie:arexx/addspace.rexx") == "0" then do
  351.     'REQUEST "AddSpace.rexx is missing!" "I will get it... sorry"'
  352.     exit
  353.   end
  354.   address command "Sys:Rexxc/rx ie:arexx/AddSpace.rexx" temppic bg space
  355.  
  356.   PROJECT_LIST
  357.   xyz=result
  358.   x0=subword(xyz,1,1)
  359.  
  360.   return x0
  361.  
  362.  
  363.  
  364. /*******************************************************************/
  365. /* This is where control goes when an error code is returned by IE */
  366. /* It puts up a message saying what happened and on which line     */
  367. /*******************************************************************/
  368. error:
  369. if RC=5 then do            /* Did the user just cancel us? */
  370.     IE_TO_FRONT
  371.     LAST_ERROR
  372.     'REQUEST "'||RESULT||'"'
  373.     exit
  374. end
  375. else do
  376.     IE_TO_FRONT
  377.     LAST_ERROR
  378.     'REQUEST "Error detected!!!'||D2C(10)||'Image Engineer error message is as follows'||D2C(10)||result||D2C(10)||'Script failed on line '||SIGL||'"' 'Doh!'
  379.     exit
  380. end
  381.