Hauptseite   Packages   Klassenhierarchie   ?bersicht   Auflistung der Dateien   Datenstruktur-Elemente  

ARFF2PNG.java

gehe zur Dokumentation dieser Datei
00001 /*
00002  * $Source: /shared/cvsroot/diplom/app/src/java/de/picana/converter/ARFF2PNG.java,v $
00003  * $Author: mstolpe $
00004  * $Date: 2003/04/22 09:51:28 $
00005  * $Revision: 1.4 $
00006  * $Release$
00007  *
00008  * Created on 15. November 2002, 19:28
00009  *
00010  * Copyright 2002 by Marco Stolpe
00011  */
00012 
00013 package de.picana.converter;
00014 
00015 import de.picana.control.*;
00016 import de.picana.logging.*;
00017 
00018 import weka.core.*;
00019 
00020 import java.io.*;
00021 import java.util.*;
00022 import java.awt.image.*;
00023 import javax.imageio.*;
00024 import javax.imageio.stream.*;
00025 
00026 
00033 public class ARFF2PNG extends Task {
00034     
00035     private String infile;
00036     private String outfile;
00037     private int width;
00038     private int height;
00039     
00040     private Instances instances;
00041     
00042     
00044     public ARFF2PNG() {
00045     }
00046 
00047     public void init(ParameterSet params, Logger logger) {
00048         
00049         super.init(params, logger);
00050         
00051         width = 0;
00052         height = 0;
00053         
00054         infile = (String)params.getParameter("in");
00055         outfile = (String)params.getParameter("out");
00056 
00057         try {
00058             width = Integer.parseInt((String)params.getParameter("width"));
00059         } catch (NumberFormatException nfe) {}
00060         
00061         try {
00062             height = Integer.parseInt((String)params.getParameter("height"));
00063         } catch (NumberFormatException nfe) {}
00064     }
00065     
00066     public void start() throws TaskException {
00067      
00068         logger.info(LOGSRC, "Started.");
00069         
00070         try {
00071             File input = new File(infile);
00072             FileInputStream fis = new FileInputStream(input);
00073             InputStreamReader reader = new InputStreamReader(fis);
00074             instances = new Instances(reader);
00075 
00076             BufferedImage image = new BufferedImage(width, height,
00077                 BufferedImage.TYPE_INT_RGB);
00078         
00079             for (int y=0; y < height; y++) {
00080              
00081                 //System.out.println(y);
00082                 //System.out.flush();
00083                 
00084                 for (int x=0; x < width; x++) {
00085                 
00086                     int index = y * width + x;
00087                     Instance ex = instances.instance(index);
00088                     
00089                     int red = (int)(ex.value(0) * 256);
00090                     int green = (int)(ex.value(1) * 256);
00091                     int blue = (int)(ex.value(2) * 256);
00092                     int rgb = (red << 16) + (green << 8) + blue;
00093                     
00094                     image.setRGB(x, y, rgb);
00095                 }   
00096             }
00097             
00098             Iterator writers = ImageIO.getImageWritersByFormatName("png");
00099             ImageWriter wr = (ImageWriter)writers.next();
00100         
00101             ImageOutputStream ios = ImageIO.createImageOutputStream(
00102                 new FileOutputStream(outfile));
00103             wr.setOutput(ios);
00104             wr.write(image);
00105 
00106             logger.info(LOGSRC, "Stopped.");
00107             
00108         } catch (Exception e) {
00109             throw new TaskException(e.toString());    
00110         }
00111     }
00112     
00113     public void stop() {
00114     }
00115     
00116     public void pause() {
00117     }
00118     
00119     public void resume() {
00120     }
00121 }

Erzeugt am Tue Apr 22 11:22:55 2003 f?r Picana von doxygen1.2.18