/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * AndroidWorld Library, Copyright 2011 Bryan Chadwick * * * * FILE: ./android/world/test/RasterImageTest.java * * * * This file is part of AndroidWorld. * * * * AndroidWorld is free software: you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation, either version * * 3 of the License, or (at your option) any later version. * * * * AndroidWorld is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with AndroidWorld. If not, see <http://www.gnu.org/licenses/>. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ package android.world.test; import android.app.Activity; import android.os.Bundle; import android.image.*; import android.world.World; public class RasterImageTest extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); new ImageWorld(new FromURL("http://www.ccs.neu.edu/home/chadwick/images/spongebob.jpg")) .bigBang(this); } } class ImageWorld extends World{ RasterImage img; RasterImage img2; static RasterImage scale(RasterImage img, int size){ RasterImage res = new RasterImage(img.width()*size, img.height()*size); for(int i = 0; i < res.width(); i++){ for(int j = 0; j < res.height(); j++){ int color = img.getPixel(i/size, j/size); if(ColorDatabase.argbAlpha(color) > 0){ res.setPixel(i, j, ColorDatabase.makeColor(ColorDatabase.argbAlpha(color), ColorDatabase.argbRed(color), ColorDatabase.argbGreen(color), ColorDatabase.argbBlue(color))); } } } return res; } static RasterImage gray(RasterImage img){ RasterImage res = new RasterImage(img.width(), img.height()); for(int i = 0; i < res.width(); i++){ for(int j = 0; j < res.height(); j++){ int color = img.getPixel(i, j); int avg = (int)(0.3*ColorDatabase.argbRed(color)+ 0.6*ColorDatabase.argbGreen(color)+ 0.1*ColorDatabase.argbBlue(color)); res.setPixel(i, j, ColorDatabase.argbAlpha(color), avg, avg, avg); } } return res; } ImageWorld(RasterImage img){ this.img = ImageWorld.scale(img, 4); this.img2 = ImageWorld.gray(this.img); } public Scene onDraw(){ return this.img.overlayxy(this.img2, this.img.width(), 0).toScene(); } }