import java.awt.*;
import java.awt.image.*;
//import javax.swing.SwingUtilities;
/*import javax.imageio.ImageIO;

import java.io.File;
import java.io.IOException;

//Stuff From Java E-Democracy Software
import javax.swing.*;

//import java.awt.TextArea;
//import java.awt.BorderLayout;
//import javax.swing.JTree.*;
//import java.awt.event.KeyEvent;
//import javax.swing.AbstractButton.*;
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import java.awt.GridLayout;
import java.awt.BorderLayout;
//import java.awt.event.KeyEvent;

//import org.gerhardb.lib.swing.*;


import javax.swing.ImageIcon;
import javax.swing.JLabel;
//import javax.swing.JButton;

import javax.swing.JTabbedPane;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import java.awt.Dimension;

import javax.swing.JPanel;*/
import javax.swing.JFrame;
/*import javax.swing.JComponent;

import javax.swing.UIManager;

import java.awt.Toolkit;*/


/*
v/ Kabala - Unknown Artist
v/ Grand Unified Theory - Paul Oakenfold - Perfecto Presents Another World CD 1.mp3
v/ Supreme Matrix Theory - Paul Oakenfold - Perfecto Presents Another World II.mp3
v/ Cyberology - Ken Ishii Discography
v/ HealPacks - super furry animals - juxtaposed with u.mp3
v/ Sky Net - Paul Oakenfold - Essential Mix in China.mp3 + Paul Oakenfold - Miami Part 2.mp3
v/ Infinite Number Theorem - Sasha Discography
v/ Poisonoloy - Robert Miles Discography
v/ FountainOfYouth.info - (2006-01-01) Radio 1 Essential Mix - Sasha.mp3
v/ Shill: Sherri Kane the Confuser - Massive Attack
v/ Nuclear War - E:\MP3s\Game Music\Fallout 1 - A Post Nuclear Role-Playing Game Soundtrack\01 - Ink Spots - Maybe (fallout theme).mp3 And The Rest
v/ E-Democracy - E:\MP3s\Game Music\DeusEX\  25:23
v/ Grand Windmill - Paul Oakenfold - Global Underground NYC.mp3  54:09
Progenitor Aliens - E:\MP3s\Anbrok\01-anbrok_-_anbrok_sessions_051.mp3  240:01
v/ Jewlluminati History - Infected Mushrooom Discography
My Life Story - Silence - Skin (Valentino Kanzyani Mix).mp3   E:\MP3s\Anbrok\02-anbrok_-_anbrok_sessions_050_progressive_yearmix.mp3  4:08 + 89:55
How The War Was Won - E:\MP3s\Robs Music\CD 4\01 Track 1.mp3 -> 13  79:14
Peace De La NanoRenasance - E:\MP3s\Robs Music\CD 3\04 Track 4.mp3     (2005-11-06 00-59) The Essential Mix BBC Radio 1- M.A.N.D.Y.mp3  2:39 + 122:37
How The Government Caused 911 - Rammstein  91:47
Sky Command - Nine Inch Nails Discography + All Quake Songs + E:\MP3s\Juno Reactor - The Remixes (1993-2003)\Juno Reactor & Don Davis - Mona Lisa Overdrive.mp3
139:53 + 28:47 + 180:06 + 4:45
Book Of The Law Explained - Hybrid Discography  587:11
My Previous Incarnations - DJ Mystik - Lost in trance.mp3  2:54
Mental Health Gulag - Underworld  189:23
Elven Alliance.com - Lords of Acid  72:02
v/ MainPage - KMFDM + DJ Beck - Super Mix(feat.303Infinity,ATC,ATB,Alya,DJScott,BT,Prodigy,RobertMiles,PetShopBoys,Okenfold,DJ.mp3
Avatars and Pictures - Bt Discography 436:14
v/ Supreme Magic Spell Book - OMD - Secret (12 inch mix).mp3
Magic Gizmos - C:\Users\Alex\Desktop\1st Drawr\BackgroundRecordings\Deadmau5 From MP3 Player\[2006] Get Scraped  66:14
Illuminati's Greatest Secret - DeadMause on MP3 Player   198:10
All Sizes Are 1422x860
2351 Left 32.327 Gigs Left To Do
*/


class Sonnet
{
	static int initialScreenSizeX = 1440, initialScreenSizeY = 900;//862
	static Dimension Dim = new Dimension(initialScreenSizeX, initialScreenSizeY);
	static BufferedImage I = new BufferedImage(Dim.width, Dim.height, BufferedImage.TYPE_INT_RGB);
    static int borderSizeX = Dim.width/12, borderSizeY = Dim.height/6;
    static int choice = 0;//0 is SkyNet Pyramid, 1 is Full Spectral Rainbow, 2 is Y and Sonnet
    static final int numberOfColorsInTheRainbow = 7;//asdf
    static final Color red = new Color( new double[]{193,0,0} );
    static final Color orange = new Color( new double[]{255,134,0} );
    static final Color yellow = new Color( new double[]{246,252,15} );
    static final Color green = new Color( new double[]{0,133,50} );
    static final Color teal = new Color( new double[]{3,224,149} );
    static final Color blue = new Color( new double[]{0,0,192} );
    static final Color purple = new Color( new double[]{122,0,178} );
    static final Color black = new Color( new double[]{0,0,0} );
    static final Color white = new Color( new double[]{255,255,255} );
    static final Color brown = new Color( new double[]{131,103,71} );
    static final Color bronze = new Color( new double[]{152,123,46} );
    static final Color silver = new Color( new double[]{193,192,192} );
    static final Color gold = new Color( new double[]{205,191,44} );
    static final Color lime = new Color( new double[]{126,193,33} );
    
	static public void main(String[] args) throws InterruptedException
    {
		JFrame f = new JFrame("Sonnet");
		f.add("Center", new MainCanvas());
        f.setSize(Dim);// + 22 on Y in example for some reason
        //f.setExtendedState(JFrame.MAXIMIZED_BOTH);
        //f.setResizable(true); // THEN  resizable = false
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        WritableRaster wr = I.getRaster();
        int x = 0, y = 0, xSlider = 0, xMinusxSlider = 0, cxMx = 0;//cxMx Corrected xMinusxSlider for determining color
        Color color = new Color( new double[]{0,0,0} );
        double colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
        int cx = Math.round( (Dim.width + 1  ) / 2 - 1 );
        int cy = Math.round( (Dim.height + 1 ) / 2 - 1 );
        double totalAngleUnits = 0;
        //double spectralBrightnessMultiplyer = 1/2;
        boolean TrispectralRainbow = false;
        //Dimension DimLast = Dim;
        Thread.sleep(4000);
        while (choice != 4)
		{
    	if (choice == 0)
    	{
    		//Dimension DimLast = Dim;
    		Dim = f.getSize();
            //Dim.height = Dim.height - 60;//Use only For Circular Rainbow
    		colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
    		//colorInterval = Dim.height / ( 2 * ( numberOfColorsInTheRainbow - 1 ) );
    		if (TrispectralRainbow == true)
    			colorInterval = colorInterval / 3;//For Trispectral Rainbow.
    		for (xSlider = 0; xSlider < Dim.width; xSlider++)//-144 Use cy And < Dim.height Instead of Dim.height For Circular Rainbow //Start At -144 For Videos And Pictures
    		{
    			Dim = f.getSize();
                //Dim.height = Dim.height - 60;//Use only For Circular Rainbow
    			colorInterval = Dim.width / ( numberOfColorsInTheRainbow - 1 );
                cx = Math.round( (Dim.width + 1  ) / 2 - 1 );
                cy = Math.round( (Dim.height + 1 ) / 2 - 1 );
                
    			for (x = 0; x < Dim.width; x++)
    			{
    				xMinusxSlider = x - xSlider;// To Test Moving Rainbow From Left To Right
    				//xMinusxSlider = x;
    				if ( xMinusxSlider < 0)
						cxMx = xMinusxSlider + Dim.width;
					else cxMx = xMinusxSlider;//*/
    				
    				
    				/*if ( cxMx < colorInterval ) // Cyberology - Ken Ishii Discography
    					color.ColorSlider(colorInterval, cxMx, yellow, blue);
	  				else
	  					color.ColorSlider(colorInterval, cxMx - colorInterval, blue, purple);//*/
    				
    				/*if ( cxMx < colorInterval ) // HealPacks - super furry animals - juxtaposed with u.mp3
    					color.ColorSlider(colorInterval, cxMx, yellow, red);
	  				else
	  					color.ColorSlider(colorInterval, cxMx - colorInterval, red, purple);//*/

    				/*if ( cxMx < colorInterval ) // Sky Net - Paul Oakenfold - Essential Mix in China.mp3 + Paul Oakenfold - Miami Part 2.mp3    					color.ColorSlider(colorInterval, cxMx, red, silver);
    					color.ColorSlider(colorInterval, cxMx, red, silver);
    				else if ( cxMx < ( 2 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - colorInterval, silver, gold);
    				else		
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, gold, blue);//*/

    				//color.ColorSlider(colorInterval, cxMx, green, purple);//Infinite Number Theorem

    				/*if ( cxMx < colorInterval ) // Fountain of Youth
    					color.ColorSlider(colorInterval, cxMx, red, black);
    				else
    					color.ColorSlider(colorInterval, cxMx - colorInterval, blue, purple);//*/
    				
    				
    				
    				/*if ( cxMx < colorInterval ) // Shill
    					color.ColorSlider(colorInterval, cxMx, red, black);
    				else
    					color.ColorSlider(colorInterval, cxMx - colorInterval, black, red);//*/

    				/*if ( cxMx < colorInterval ) // Grand Windmill
    					color.ColorSlider(colorInterval, cxMx, bronze, silver);
    				else if ( cxMx < ( 2 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - colorInterval, silver, gold);
    				else		
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, gold, black);//*/
	  				
    				/*if ( cxMx < colorInterval ) // Poisonology
    					color.ColorSlider(colorInterval, cxMx, green, green);
    				else if ( cxMx < ( 2 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - colorInterval, green, blue);
    				else if ( cxMx < ( 3 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, blue, green);
    				else if ( cxMx < ( 4 * colorInterval ) )	
    					color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, green, green);//*/
    				
    				/*if ( cxMx < colorInterval ) // Nuclear War
    					color.ColorSlider(colorInterval, cxMx, red, green);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, green, black);
					else if ( cxMx < ( 3 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, black, white);
					else if ( cxMx < ( 4 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, white, black);
					else if ( cxMx < ( 5 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, black, green);
					else
						color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, green, red);//*/
    				
    				/*if ( cxMx < colorInterval ) // E-Democracy
    					color.ColorSlider(colorInterval, cxMx, green, gold);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, gold, red);
					else if ( cxMx < ( 3 * colorInterval ) )		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, red, purple);
					else if ( cxMx < ( 4 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, purple, white);
    				else if ( cxMx < ( 5 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, white, black);
    				else if ( cxMx < ( 6 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, black, orange);
    				else if ( cxMx < ( 7 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 6 * colorInterval, orange, yellow);
    				else if ( cxMx < ( 8 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 7 * colorInterval, yellow, blue);
    				else if ( cxMx < ( 9 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 8 * colorInterval, blue, silver);
    				else if ( cxMx < ( 10 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 9 * colorInterval, silver, brown);
    				else
    					color.ColorSlider(colorInterval, cxMx - 10 * colorInterval, brown, bronze);//*/
    				
    				
    				
    				
    				
    				/*if ( cxMx < colorInterval ) // Main Page - KMFDM +  + DJ Beck - Super Mix(feat.303Infinity,ATC,ATB,Alya,DJScott,BT,Prodigy,RobertMiles,PetShopBoys,Okenfold,DJ.mp3
    					color.ColorSlider(colorInterval, cxMx, red, green);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, green, blue);
					else		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, blue, red);//*/
    				
    				/*if ( cxMx < colorInterval ) // BAD!!! Main Page - KMFDM
    					color.ColorSlider(colorInterval, cxMx, red, bronze);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, bronze, silver);
					else if ( cxMx < ( 3 * colorInterval ) )		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, silver, gold);
					else if ( cxMx < ( 4 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, gold, green);
    				else if ( cxMx < ( 5 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, green, green);
    				else if ( cxMx < ( 6 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, green, gold);
    				else if ( cxMx < ( 7 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 6 * colorInterval, gold, silver);
    				else if ( cxMx < ( 8 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 7 * colorInterval, silver, bronze);
    				else if ( cxMx < ( 9 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 8 * colorInterval, bronze, blue);
    				else
    					color.ColorSlider(colorInterval, cxMx - 9 * colorInterval, blue, blue);//*/
    				
    				
    				
    				/*if ( cxMx < colorInterval ) // Jewlluminati History
    					color.ColorSlider(colorInterval, cxMx, blue, red);
    				else
    					color.ColorSlider(colorInterval, cxMx - colorInterval, red, blue);//*/
    				
    				/*if ( cxMx < colorInterval ) // My Life Story
    					color.ColorSlider(colorInterval, cxMx, green, red);
					else
						color.ColorSlider(colorInterval, cxMx - colorInterval, red, green);//*/
    				
    				
    				
    				/*if ( cxMx < colorInterval ) // Sky Command
    					color.ColorSlider(colorInterval, cxMx, red, orange);
					else if ( cxMx < ( 2 * colorInterval ) )
						color.ColorSlider(colorInterval, cxMx - colorInterval, orange, yellow);
					else if ( cxMx < ( 3 * colorInterval ) )		
						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, yellow, lime);
					else
						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, lime, green);//*/
    				
    				
    				
    				
    				if ( cxMx < colorInterval )//For Normal Rainbow Use This Instead Of The Others
    					color.ColorSlider(colorInterval, cxMx, red, orange);
    				else if ( cxMx < ( 2 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - colorInterval, orange, yellow);
    				else if ( cxMx < ( 3 * colorInterval ) )		
    					color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, yellow, green);
    				else if ( cxMx < ( 4 * colorInterval ) )
    					color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, green, teal);
        			else if ( cxMx < ( 5 * colorInterval ) )
        				color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, teal, blue);
        			else
        				color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, blue, purple);//*/
        			
    				
    				/*if ( cxMx <= ( 6 * colorInterval ) )
    				{
    					if ( cxMx < colorInterval )	
        					color.ColorSlider(colorInterval, cxMx, 0.5, red, orange);
    					else if ( cxMx < ( 2 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - colorInterval, 0.5, orange, yellow);
    					else if ( cxMx < ( 3 * colorInterval ) )		
    						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, 0.5, yellow, green);
    					else if ( cxMx < ( 4 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, 0.5, green, teal);
        				else if ( cxMx < ( 5 * colorInterval ) )
        					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, 0.5, teal, blue);
        				else
        					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, 0.5, blue, purple);
    				}
    				else if ( cxMx <= ( 12 * colorInterval ) )
    				{
    					if ( cxMx < ( 7 * colorInterval ) )	
        					color.ColorSlider(colorInterval, cxMx - 6 * colorInterval, red, orange);
    					else if ( cxMx < ( 8 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 7 * colorInterval, orange, yellow);
    					else if ( cxMx < ( 9 * colorInterval ) )		
    						color.ColorSlider(colorInterval, cxMx - 8 * colorInterval, yellow, green);
    					else if ( cxMx < ( 10 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 9 * colorInterval, green, teal);
        				else if ( cxMx < ( 11 * colorInterval ) )
        					color.ColorSlider(colorInterval, cxMx - 10 * colorInterval, teal, blue);
        				else
        					color.ColorSlider(colorInterval, cxMx - 11 * colorInterval, blue, purple);
    				}
    				else
    				{
    					if ( cxMx < ( 13 * colorInterval ) )	
        					color.ColorSlider(colorInterval, cxMx - 12 * colorInterval, 2, red, orange);
    					else if ( cxMx < ( 14 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 13 * colorInterval, 2, orange, yellow);
    					else if ( cxMx < ( 15 * colorInterval ) )		
    						color.ColorSlider(colorInterval, cxMx - 14 * colorInterval, 2, yellow, green);
    					else if ( cxMx < ( 16 * colorInterval ) )
    						color.ColorSlider(colorInterval, cxMx - 15 * colorInterval, 2, green, teal);
        				else if ( cxMx < ( 17 * colorInterval ) )
        					color.ColorSlider(colorInterval, cxMx - 16 * colorInterval, 2, teal, blue);
        				else
        					color.ColorSlider(colorInterval, cxMx - 17 * colorInterval, 2, blue, purple);
    				}//*/
                
    				for (y = 0; y < Dim.height; y++)//For Sideways Rainbow Works On My Machine.
    					wr.setPixel( x, y, color.RGB );//(double[])red.get());
                	
    				//if (x < Dim.height) //For Diagonal Rainbow Works On My Machine.
    				//	for (y = x; y >= 0; y--)
    				//		wr.setPixel( x - y, y, color.RGB);
    				//else
    				//	for (y = Dim.height - 1; y >= 0; y--)
    				//		wr.setPixel( x - y, y, color.RGB);//*/
                
    				/*for (int r = 0; r <= cy; r++)//For Normal Rainbow Use This Instead Of The Other 3
    				{
    					xMinusxSlider = r - xSlider;
						//xMinusxSlider = r;
						if ( xMinusxSlider < 0)
							cxMx = xMinusxSlider + cy;
						else cxMx = xMinusxSlider;
						
						color.ColorSlider(colorInterval, cxMx, green, purple);
						
						/*if ( cxMx <= ( 6 * colorInterval ) )
	    				{
	    					if ( cxMx < colorInterval )	
	        					color.ColorSlider(colorInterval, cxMx, red, orange);
	    					else if ( cxMx < ( 2 * colorInterval ) )
	    						color.ColorSlider(colorInterval, cxMx - colorInterval, orange, yellow);
	    					else if ( cxMx < ( 3 * colorInterval ) )		
	    						color.ColorSlider(colorInterval, cxMx - 2 * colorInterval, yellow, green);
	    					else if ( cxMx < ( 4 * colorInterval ) )
	    						color.ColorSlider(colorInterval, cxMx - 3 * colorInterval, green, teal);
	        				else if ( cxMx < ( 5 * colorInterval ) )
	        					color.ColorSlider(colorInterval, cxMx - 4 * colorInterval, teal, blue);
	        				else
	        					color.ColorSlider(colorInterval, cxMx - 5 * colorInterval, blue, purple);
	        			}//*/
    					/*totalAngleUnits = Math.round( ( r * ( 2 * Math.PI ) - 1 ) * Math.PI );//  * Math.PI  Seems To Be Wrong But Is Necessary With Math Inaccuracy!
    					if ( r==0 )
    						wr.setPixel(cx, cy, color.RGB);
    					for (int a = 0; a <= totalAngleUnits; a++)//a = angle interval so that all angles are included
    					{
    						wr.setPixel( (int)Math.round( cx + Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ),
    								     (int)Math.round( cy + Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    						//wr.setPixel( (int)Math.round( cx - Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), (int)Math.round( cy + Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    						//wr.setPixel( (int)Math.round( cx + Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), (int)Math.round( cy - Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    						//wr.setPixel( (int)Math.round( cx - Math.cos( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), (int)Math.round( cy - Math.sin( ( a/totalAngleUnits ) * 2 * Math.PI ) * r ), color.RGB);
    					}
    				}//*/
    			}
    			f.invalidate();
    			f.revalidate();
    			f.repaint();
    		}
    	    //choice = 1;
    	}
    	else if (choice == 1)
    	{
    		Dim = f.getSize();
    	    
    	    //Thread.sleep(1000);
    		choice = 2;
    	}
    	else if (choice == 2)
    	{
    		Dim = f.getSize();
    		
    	    //Thread.sleep(1000);
    		choice = 4;
    	}
		}
	}
}
    //System.exit(0);

/*public class MainCanvas extends Canvas
{
    public void paint(Graphics g)
    {
        g.drawImage(Sonnet.I, 0, 0, Color.red, null);
        //Dim = getSize();
        //g.drawOval(0, 0, Dim.width, Dim.height);
    }
}
/*for (int i = 0; i < screenSizeX; ++i)
for(int j = 0; j < screenSizeY; ++j)
	I.setRGB(i, j, 0x000000); // Black Background
for (int j = 0; j<45; ++j)
I.setRGB(j, j, 0); // Scratch upper left corner
if(1>0)
{
	int x = screenSizeX - borderSizeX, y = screenSizeY - borderSizeY;
	int[] a = new int[y*x*3]; // 96 bit pixels
	for(int j = 0; j<y; ++j)
		for(int i = 0; i<x; ++i)
		{
			int z = 3*(j*x + i);
			a[z] = i; a[z+1] = j; a[z+2] = 128;
		}
		wr.setPixels(20, 20, x, y, a);
	}
	else
	{
		int[] a = new int[3];
		a[2] = 128;
		for(int j = 0; j<screenSizeY-40; ++j)
		{
			a[1] = j;
			for(int i = 0; i<screenSizeX-40; ++i)
			{
			a[0] = i;
			wr.setPixel(20+i, 20+j, a);
		}
	}
}
for(int q = 0; q < args.length; ++q)
        {
           int z = args[q].lastIndexOf('.');
           if (z > 0) try
           {
        	   ImageIO.write(
                I, args[q].substring(z+1),
                new File(args[q]));
           }
           catch (IOException e)
           {
            	  System.err.println("image not saved.");
           }
           
        }
*/
