import org.kde.qt.*; import org.kde.koala.*; // // Simple little hack to show off blending effects. // // (C) KDE Artistic Cristian Tibirna // /** * Class to test KImageEffect blending effects. * * This is a translation to java from kblendtest.cpp in the tests library * of kdeui source. * * @see KApplication * @see KImageEffect * * @author Cristian Tibirna , java translation Kenneth J. Pouncey, kjpou@hotmail.com * @version 0.1 */ public class KBlendTest { public static void main(String[] args) { KCmdLineArgs.init(args, "kblendtest", "KBlendTest", "It blends!", "0.1"); KApplication app = new KApplication(); KBlendWidget w = new KBlendWidget(null,"KBlendTest"); w.setCaption(app.name()); app.setMainWidget(w); w.show(); app.exec(); return; } public static class KBlendWidget extends QWidget { QImage image; QColor bgnd; String testImage = "testimage.png"; public KBlendWidget (QWidget parent, String name) { // change the colors to see the effects. // bgnd = new QColor(QColor.qRgb(255, 255, 255)); bgnd = Qt.blue(); // bgnd = Qt.red(); image = new QImage(testImage); resize(image.width()*2+60, image.height()*3+80); setBackgroundColor(bgnd); } protected void paintEvent(QPaintEvent pe ) { long it, ft; String say = ""; image = new QImage(testImage); QPainter p = new QPainter(this); p.setPen(Qt.black()); // you see here use of anti_dir param (blend from down to up, here) it = System.currentTimeMillis(); KImageEffect.blend(image, 0.2f, bgnd, KImageEffect.VerticalGradient,true); ft = System.currentTimeMillis(); say = (ft - it) + " ms, Vertical"; p.drawImage(20, 20, image); p.drawText(5 , 15, say); image = new QImage(testImage); // here a negative initial intensity is used (1/2 of image is unaffected) it = System.currentTimeMillis(); KImageEffect.blend(image, -0.5f, bgnd, KImageEffect.HorizontalGradient); ft = System.currentTimeMillis(); say = (ft - it) + " ms, Horizontal"; p.drawImage(40+image.width(), 20, image); p.drawText(15+image.width() , 15, say); image = new QImage(testImage); it = System.currentTimeMillis(); KImageEffect.blend(image, 0.0f, bgnd, KImageEffect.DiagonalGradient,true); ft = System.currentTimeMillis(); say = (ft - it) + " ms, Diagonal"; p.drawImage(20, 40+image.height(), image); p.drawText(5 , 35+image.height(), say); image = new QImage(testImage); it = System.currentTimeMillis(); KImageEffect.blend(image, 0.1f, bgnd, KImageEffect.CrossDiagonalGradient); ft = System.currentTimeMillis(); say = (ft - it) + " ms, CrossDiagonal"; p.drawImage(40+image.width(), 40+image.height(), image); p.drawText(25+image.width() , 35 + image.height(), say); image = new QImage(testImage); it = System.currentTimeMillis(); KImageEffect.blend(image, -0.6f, bgnd, KImageEffect.RectangleGradient); ft = System.currentTimeMillis(); say = (ft - it) + " ms, Rectangle"; p.drawImage(20, 60+2*image.height(), image); p.drawText(5 , 55+2*image.height(), say); image = new QImage(testImage); it = System.currentTimeMillis(); KImageEffect.blend(image, 0.2f, bgnd, KImageEffect.EllipticGradient); ft = System.currentTimeMillis(); say = (ft - it) + " ms, Elliptic"; p.drawImage(40+image.width(), 60+2*image.height(), image); p.drawText(25+image.width(), 55+2*image.height(), say); p.end(); } } static { qtjava.initialize(); kdejava.initialize(); } }