You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
4.4 KiB
173 lines
4.4 KiB
#!/usr/bin/env kjscmd
|
|
|
|
function BaseImage()
|
|
{
|
|
this.a = new Image(this);
|
|
this.b = new Image(this);
|
|
this.c = new Image(this);
|
|
this.d = new Image(this);
|
|
this.e = new Image(this);
|
|
this.f = new Image(this);
|
|
this.g = new Image(this);
|
|
this.h = new Image(this);
|
|
this.i = new Image(this);
|
|
|
|
this.height = function() {
|
|
return this.a.height() + this.d.height() + this.g.height();
|
|
}
|
|
|
|
this.width = function() {
|
|
return this.a.width() + this.b.width() + this.c.width();
|
|
}
|
|
|
|
this.loadImages = function() {
|
|
return (
|
|
this.a.load("01.png") &&
|
|
this.b.load("02.png") &&
|
|
this.c.load("03.png") &&
|
|
this.d.load("04.png") &&
|
|
this.e.load("05.png") &&
|
|
this.f.load("06.png") &&
|
|
this.g.load("07.png") &&
|
|
this.h.load("08.png") &&
|
|
this.i.load("09.png") );
|
|
}
|
|
|
|
this.colorize = function( color ) {
|
|
var percent = 0.55;
|
|
var imgfx = new ImageFX();
|
|
|
|
this.a = imgfx.blendColor( color, this.a, percent);
|
|
this.b = imgfx.blendColor( color, this.b, percent);
|
|
this.c = imgfx.blendColor( color, this.c, percent);
|
|
this.d = imgfx.blendColor( color, this.d, percent);
|
|
this.e = imgfx.blendColor( color, this.e, percent);
|
|
this.f = imgfx.blendColor( color, this.f, percent);
|
|
this.g = imgfx.blendColor( color, this.g, percent);
|
|
this.h = imgfx.blendColor( color, this.h, percent);
|
|
this.i = imgfx.blendColor( color, this.i, percent);
|
|
}
|
|
|
|
this.resize = function( newW, newH ) {
|
|
|
|
this.b.smoothScale( newW - ( this.a.width() + this.c.width() ), this.b.height() );
|
|
this.h.smoothScale( newW - ( this.g.width() + this.i.width() ), this.h.height() );
|
|
|
|
this.d.smoothScale( this.d.width(), newH - ( this.a.height() + this.g.height() ) );
|
|
this.f.smoothScale( this.f.width(), newH - ( this.c.height() + this.i.height() ) );
|
|
|
|
this.e.smoothScale( newW - ( this.a.width() + this.c.width() ),
|
|
newH - ( this.c.height() + this.i.height() ) );
|
|
}
|
|
|
|
this.test = function( parent ) {
|
|
var box = new TQHBox(parent);
|
|
var vbox1 = new TQVBox(box);
|
|
var vbox2 = new TQVBox(box);
|
|
var vbox3 = new TQVBox(box);
|
|
var l1 = new TQLabel(vbox1);
|
|
l1.pixmap = this.a.pixmap();
|
|
|
|
var l2 = new TQLabel(vbox1);
|
|
l2.pixmap = this.d.pixmap();
|
|
|
|
var l3 = new TQLabel(vbox1);
|
|
l3.pixmap = this.g.pixmap();
|
|
|
|
var l4 = new TQLabel(vbox2);
|
|
l4.pixmap = this.b.pixmap();
|
|
|
|
var l5 = new TQLabel(vbox2);
|
|
l5.pixmap = this.e.pixmap();
|
|
|
|
var l6 = new TQLabel(vbox2);
|
|
l6.pixmap = this.h.pixmap();
|
|
|
|
var l7 = new TQLabel(vbox3);
|
|
l7.pixmap = this.c.pixmap();
|
|
|
|
var l8 = new TQLabel(vbox3);
|
|
l8.pixmap = this.f.pixmap();
|
|
|
|
var l9 = new TQLabel(vbox3);
|
|
l9.pixmap = this.i.pixmap();
|
|
}
|
|
|
|
this.pixmap = function(width, height){
|
|
var pix = new Pixmap(this);
|
|
pix.resize(width,height);
|
|
pix.fill("white");
|
|
var painter = new Painter(this);
|
|
if( painter.begin(pix) )
|
|
{
|
|
this.paint(painter);
|
|
if( painter.end() )
|
|
return painter.pixmap();
|
|
}
|
|
return pix;
|
|
}
|
|
|
|
this.paint = function(painter){
|
|
|
|
painter.drawRect(0,0,this.width(), this.height());
|
|
|
|
painter.drawImage(0, 0, this.a, 0, 0, -1, -1, 0);
|
|
painter.drawImage(0, this.a.height(), this.d, 0, 0, -1, -1, 0);
|
|
painter.drawImage(0, ( this.height() - this.g.height() ) ,this.g, 0, 0, -1, -1, 0);
|
|
|
|
painter.drawImage(this.a.width(), 0, this.b, 0, 0, -1, -1, 0);
|
|
painter.drawImage(this.d.width(), this.b.height(), this.e, 0, 0, -1, -1, 0);
|
|
painter.drawImage(this.g.width(), ( this.height() - this.h.height() ) ,this.h, 0, 0, -1, -1, 0);
|
|
|
|
painter.drawImage(this.a.width() + this.b.width(), 0, this.c, 0, 0, -1, -1, 0);
|
|
painter.drawImage(this.d.width() + this.e.width(), this.c.height(), this.f, 0, 0, -1, -1, 0);
|
|
painter.drawImage(this.g.width() + this.h.width(), ( this.height() - this.i.height() ) ,this.i, 0, 0, -1, -1, 0);
|
|
}
|
|
|
|
this.widget = function(canvas) {
|
|
var painter = new Painter(this);
|
|
if( painter.begin(canvas) )
|
|
{
|
|
this.paint(painter);
|
|
if( painter.end() )
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
var base = new BaseImage();
|
|
var label = new TQLabel(this);
|
|
|
|
|
|
if ( !base.loadImages() )
|
|
alert("Error Loading Resources!");
|
|
|
|
base.colorize("blue");
|
|
var H = 128;
|
|
var W = 128;
|
|
|
|
base.resize(W,H);
|
|
|
|
var box = new TQHBox(this);
|
|
var label = new TQLabel(box);
|
|
label.resize(W,H);
|
|
label.paintEvent = function(ev)
|
|
{
|
|
println("paint...");
|
|
base.widget(label);
|
|
}
|
|
|
|
var label2 = new TQLabel(box);
|
|
label2.pixmap = base.pixmap(W,H);
|
|
|
|
base.test(box);
|
|
|
|
box.show();
|
|
box.resize(W*3, H)
|
|
|
|
application.exec();
|
|
|
|
//img.load("cl.png"); img.blendColor( "blue", 0.20); img.smoothScale(16,128); lab.pixmap = img.pixmap
|