import java.io.File; String mode="none"; String dir="none"; String fName; boolean fileChosen=false; boolean showHelp=false; boolean loaded=false; int size=600; int post=1; int fNum=1; int bl=0; File f; String sep=File.separator; String curDir = System.getProperty("user.dir"); PFont font; PImage i,b; String[]files; float th=0.4; void setup(){ size(size+size/3,size); font=loadFont("Ang24.vlw"); textFont(font,24); smooth(); frameRate(20); } void draw(){ if(mode.equals("none")){ chooseMode(); } else if(!fileChosen){ chooseFile(); } else if(!loaded){ image(i,0,0,width,height); b=get(); loaded=true; } if(loaded&&showHelp){ display("I - INVERT\nG - GRAY\nE - ERODE\n D - DILATE\nP - POSTERIZE\nB - BLUR\nT - THRESHOLD\nO - OPAQUE\nR - RESTART\nS - SAVE\nX - EXIT"); } } void clearDisplay(){ fill(255); rect(0,0,width/2,height/3); } void chooseMode(){ display("Type of File\n G - GIF\n J - JPG\n P - PNG"); } void chooseFile(){ String s=dir+" Files:\n"; String path=getPath(); File gDir=new File(path); files=gDir.list(); int i=files.length; if(i>9)i=9; for(int n=0;nnum){ i=loadImage(path+f); fileChosen=true; } else{ mode="none"; } } String getPath(){ return curDir+sep+"myWork"+sep+"ch79"+sep+"data"+sep+dir+sep; } void display(String s){ clearDisplay(); fill(0); text(s,2,20); } void doFilter(char c){ showHelp=false; image(b,0,0,width,height); switch(c){ case 'B': case 'b': bl++; if(bl>10)bl=1; filter(BLUR,bl); break; case 'I': case 'i': filter(INVERT); break; case 'd': case 'D': filter(DILATE); break; case 'e': case 'E': filter(ERODE); break; case 'p': case 'P': post+=1; filter(POSTERIZE,post); break; case 't': case 'T': th+=.1; filter(THRESHOLD,th); break; case 'o': case 'O': filter(OPAQUE); break; case 'G': case 'g': filter(GRAY); break; case 'R': case 'r': mode="none"; fileChosen=false; loaded=false; break; case 'S': case 's': save("Filter"+fNum+fName); fNum++; break; case 'X': case 'x': exit(); break; default: filter(INVERT); } b=get(); } void keyPressed(){ if(mode.equals("none")){ if(key=='g'||key=='G'){ mode="gif"; dir="GIF"; } if(key=='j'||key=='J'){ mode="jpg"; dir="JPG"; } if(key=='p'||key=='P'){ mode="png"; dir="PNG"; } } else if(!fileChosen){ if(key>='0'&&key<='9'){ getFile(key); } else{ mode="none"; } } if(fileChosen && mode.equals("none")==false){ if(key=='h'||key=='H'){ if(showHelp){ image(b,0,0,width,height); } if(!showHelp){ b=get(); } showHelp=!showHelp; } if(key=='I'||key=='i'||key=='g'||key=='G'||key=='E'||key=='e'||key=='B'||key=='b' ||key=='D'||key=='d'||key=='P'||key=='p'||key=='T'||key=='t'||key=='O'||key=='o' ||key=='R'||key=='r'||key=='S'||key=='s'||key=='x'||key=='X'){ doFilter(key); } } }