diff options
Diffstat (limited to 'kjsembed/docs/examples/imagefun')
-rw-r--r-- | kjsembed/docs/examples/imagefun/base.png | bin | 0 -> 1445 bytes | |||
-rwxr-xr-x | kjsembed/docs/examples/imagefun/bump.js | 87 | ||||
-rw-r--r-- | kjsembed/docs/examples/imagefun/bump.ui | 327 | ||||
-rw-r--r-- | kjsembed/docs/examples/imagefun/bumptest.png | bin | 0 -> 950 bytes | |||
-rw-r--r-- | kjsembed/docs/examples/imagefun/mask-gradient.png | bin | 0 -> 9678 bytes | |||
-rw-r--r-- | kjsembed/docs/examples/imagefun/mask-noise.png | bin | 0 -> 15997 bytes | |||
-rwxr-xr-x | kjsembed/docs/examples/imagefun/rotate.js | 26 | ||||
-rwxr-xr-x | kjsembed/docs/examples/imagefun/title.js | 36 |
8 files changed, 476 insertions, 0 deletions
diff --git a/kjsembed/docs/examples/imagefun/base.png b/kjsembed/docs/examples/imagefun/base.png Binary files differnew file mode 100644 index 00000000..46e60196 --- /dev/null +++ b/kjsembed/docs/examples/imagefun/base.png diff --git a/kjsembed/docs/examples/imagefun/bump.js b/kjsembed/docs/examples/imagefun/bump.js new file mode 100755 index 00000000..f6a0ded6 --- /dev/null +++ b/kjsembed/docs/examples/imagefun/bump.js @@ -0,0 +1,87 @@ +#!/usr/bin/env kjscmd + +function makeShape() +{ + var img = new Pixmap(this); + var mask = new Pixmap(this); + var painter = new Painter(this); + + var brush = new Brush(this); + brush.setColor("black"); + brush.setStyle(Brush.SolidBrush); + var pen = new Pen(this); + pen.setColor("black"); + + mask.resize(128,64); + img.resize(128,64); + img.fill("white"); + + + if( painter.begin( img ) ) + { + painter.setPen(pen); + painter.setBrush(brush); + painter.drawRoundRect( 2,2,126,62, 25, 25 ); + if( painter.end() ) + img = painter.pixmap(); + } + + img.setMask( img.createHeuristicMask(true) ); + return img; +} + +function makeGradient(size) +{ + var img = new Image(); + img.gradient(size, "white", "black", img.PyramidGradient, 0); + return img; + +} + +function bump() +{ + var img1 = new Image(); + var map = new Image(); + var mask = new Pixmap(); + + img1.load( img1Loc ); + map.load( img2Loc ); + if ( !img1.isOk() && !map.isOk() ) { + var pix = makeShape(); + img1.setPixmap(pix); + map = makeGradient( pix.size() ); + mask = pix.mask(); + } + + println("Size 1: " + img1.width() + "x" + img1.height() ); + println("Size 2: " + map.width() + "x" + map.height() ); + var azmiuth = ui.child('azimuth').value; //135.0; + var elevation = ui.child('elevation').value; //45; + var depth = ui.child('depth').value; //3; + var xofs = ui.child('xofs').value; //5; + var yofs = ui.child('yofs').value; //5; + var waterlevel = ui.child('waterlevel').value; //0; + var ambient = ui.child('ambient').value; //0; + var compensate = ui.child('compensate').checked; //false; + var invert = ui.child('invert').checked; //false; + var type= ui.child('type').currentItem; //Image.Linear; + var tiled = ui.child('tiled').checked; //false; + img1.bumpmap(map, azmiuth, elevation, depth, xofs, yofs, waterlevel, ambient, compensate, invert, type, tiled); + var pix = img1.pixmap(); +// var pix = map.pixmap(); +// pix.setMask(mask); + view.pixmap = pix; +} + + var img1Loc = application.args[0]; + var img2Loc = application.args[1]; + + var ui = Factory.loadui('bump.ui'); + var go = ui.child('go'); + var view = ui.child('view'); + + go.connect(go, "clicked()", this, "bump"); + + ui.show(); + + application.exec(); diff --git a/kjsembed/docs/examples/imagefun/bump.ui b/kjsembed/docs/examples/imagefun/bump.ui new file mode 100644 index 00000000..90c5cc95 --- /dev/null +++ b/kjsembed/docs/examples/imagefun/bump.ui @@ -0,0 +1,327 @@ +<!DOCTYPE UI><UI version="3.2" stdsetdef="1"> +<class>Form1</class> +<widget class="QWidget"> + <property name="name"> + <cstring>Form1</cstring> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>524</width> + <height>445</height> + </rect> + </property> + <grid> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLayoutWidget" row="5" column="0" rowspan="1" colspan="6"> + <property name="name"> + <cstring>layout1</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <spacer> + <property name="name"> + <cstring>spacer1</cstring> + </property> + <property name="orientation"> + <enum>Horizontal</enum> + </property> + <property name="sizeType"> + <enum>Expanding</enum> + </property> + <property name="sizeHint"> + <size> + <width>121</width> + <height>20</height> + </size> + </property> + </spacer> + <widget class="QPushButton"> + <property name="name"> + <cstring>go</cstring> + </property> + <property name="text"> + <string>Go</string> + </property> + </widget> + </hbox> + </widget> + <widget class="QLabel" row="0" column="0" rowspan="1" colspan="6"> + <property name="name"> + <cstring>view</cstring> + </property> + <property name="sizePolicy"> + <sizepolicy> + <hsizetype>5</hsizetype> + <vsizetype>5</vsizetype> + <horstretch>2</horstretch> + <verstretch>2</verstretch> + </sizepolicy> + </property> + <property name="text"> + <string></string> + </property> + </widget> + <widget class="QLayoutWidget" row="2" column="0"> + <property name="name"> + <cstring>layout5</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel3</cstring> + </property> + <property name="text"> + <string>Depth:</string> + </property> + </widget> + <widget class="KIntSpinBox"> + <property name="name"> + <cstring>depth</cstring> + </property> + <property name="value"> + <number>3</number> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="3" column="4" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout9</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel9</cstring> + </property> + <property name="text"> + <string>Type:</string> + </property> + </widget> + <widget class="QComboBox"> + <item> + <property name="text"> + <string>Linear</string> + </property> + </item> + <item> + <property name="text"> + <string>Spherical</string> + </property> + </item> + <item> + <property name="text"> + <string>Sinuosidal</string> + </property> + </item> + <property name="name"> + <cstring>type</cstring> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="2" column="3" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout3</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel5</cstring> + </property> + <property name="text"> + <string>Y offset:</string> + </property> + </widget> + <widget class="KIntSpinBox"> + <property name="name"> + <cstring>yofs</cstring> + </property> + <property name="minValue"> + <number>0</number> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="1" column="2" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout6</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel2</cstring> + </property> + <property name="text"> + <string>Elevation:</string> + </property> + </widget> + <widget class="KDoubleNumInput"> + <property name="name"> + <cstring>elevation</cstring> + </property> + <property name="value"> + <number>45</number> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="3" column="2" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout8</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel7</cstring> + </property> + <property name="text"> + <string>Ambient:</string> + </property> + </widget> + <widget class="KIntSpinBox"> + <property name="name"> + <cstring>ambient</cstring> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="2" column="1" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout4</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel4</cstring> + </property> + <property name="text"> + <string>X offset:</string> + </property> + </widget> + <widget class="KIntSpinBox"> + <property name="name"> + <cstring>xofs</cstring> + </property> + <property name="minValue"> + <number>0</number> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="1" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout7</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel1</cstring> + </property> + <property name="text"> + <string>Azimuth:</string> + </property> + </widget> + <widget class="KDoubleNumInput"> + <property name="name"> + <cstring>azimuth</cstring> + </property> + <property name="value"> + <number>135</number> + </property> + </widget> + </hbox> + </widget> + <widget class="QLayoutWidget" row="3" column="0" rowspan="1" colspan="2"> + <property name="name"> + <cstring>layout2</cstring> + </property> + <hbox> + <property name="name"> + <cstring>unnamed</cstring> + </property> + <widget class="QLabel"> + <property name="name"> + <cstring>textLabel6</cstring> + </property> + <property name="text"> + <string>Water level:</string> + </property> + </widget> + <widget class="KIntSpinBox"> + <property name="name"> + <cstring>waterlevel</cstring> + </property> + </widget> + </hbox> + </widget> + <widget class="QCheckBox" row="4" column="5"> + <property name="name"> + <cstring>tiled</cstring> + </property> + <property name="text"> + <string>Tiled</string> + </property> + </widget> + <widget class="QCheckBox" row="4" column="2" rowspan="1" colspan="2"> + <property name="name"> + <cstring>invert</cstring> + </property> + <property name="text"> + <string>Invert</string> + </property> + </widget> + <widget class="QCheckBox" row="4" column="0"> + <property name="name"> + <cstring>compensate</cstring> + </property> + <property name="text"> + <string>Compensate</string> + </property> + <property name="checked"> + <bool>true</bool> + </property> + </widget> + </grid> +</widget> +<customwidgets> +</customwidgets> +<layoutdefaults spacing="6" margin="11"/> +<includehints> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> + <includehint>knuminput.h</includehint> +</includehints> +</UI> diff --git a/kjsembed/docs/examples/imagefun/bumptest.png b/kjsembed/docs/examples/imagefun/bumptest.png Binary files differnew file mode 100644 index 00000000..b6954838 --- /dev/null +++ b/kjsembed/docs/examples/imagefun/bumptest.png diff --git a/kjsembed/docs/examples/imagefun/mask-gradient.png b/kjsembed/docs/examples/imagefun/mask-gradient.png Binary files differnew file mode 100644 index 00000000..67fe031f --- /dev/null +++ b/kjsembed/docs/examples/imagefun/mask-gradient.png diff --git a/kjsembed/docs/examples/imagefun/mask-noise.png b/kjsembed/docs/examples/imagefun/mask-noise.png Binary files differnew file mode 100644 index 00000000..c7d8bb72 --- /dev/null +++ b/kjsembed/docs/examples/imagefun/mask-noise.png diff --git a/kjsembed/docs/examples/imagefun/rotate.js b/kjsembed/docs/examples/imagefun/rotate.js new file mode 100755 index 00000000..c7869017 --- /dev/null +++ b/kjsembed/docs/examples/imagefun/rotate.js @@ -0,0 +1,26 @@ +#!/usr/bin/env kjscmd + +// Applies a rotate of 90 degrees to the image +function apply_rotate( img ) +{ + var foo = img.Rotate90; + println(foo); + img.rotate(foo); + return img; +} + +if ( application.args.length == 0 ) { + throw 'Usage:\n\timageviewer imgfile ...'; +} +else { + var loc = application.args[0]; + var img = new Image(); + img.load( loc ); + if ( !img.isOk() ) { + throw 'Failed to load image ' + loc; + } + + img = apply_rotate( img ); + + img.save( loc ); +} diff --git a/kjsembed/docs/examples/imagefun/title.js b/kjsembed/docs/examples/imagefun/title.js new file mode 100755 index 00000000..749899be --- /dev/null +++ b/kjsembed/docs/examples/imagefun/title.js @@ -0,0 +1,36 @@ +#!/usr/bin/env kjscmd + +var textlayer = new Pixmap(); +var painter = new Painter(); + +var w = 100; +var h = 100; +var test = "This is a test"; +var pn = new Pen(this); +var bsh = new Brush(this); + +bsh.setColor("red"); + +pn.setWidth(2); +pn.setColor("red"); + +textlayer.resize( w,h); +textlayer.fill("white"); +if (painter.begin(textlayer) ) +{ + painter.setPen(pn); + painter.setBrush(bsh); + painter.drawRoundRect( 5, 5, w-5, h-5, 25, 25 ); + if( painter.end() ) + { + var lbl = new QLabel(); + var img = new Image(this); + img.setPixmap( painter.pixmap() ); + + img.emboss(0,1); + lbl.pixmap=img.pixmap(); + lbl.show(); + application.exec(); + + } +} |