Transcript
  • /*THISistheF2Versionsomewherenearcompletedforrelease.Theoldsitewashttp://www.nicephotogjsp.netthenewsiteishttp://www.windsolarhybridaustralia.x10.mxThisapplicationisnotprincipleywritteninLinuxorWindowsandissometimesperversiononlyusableinoneortheotherOSsystem.ItisendevouredtobewrittenforbothandallWindowsandNIX'sOS'sintheonedownload...cdC:\SideWinderColourBalancer\engineFILENAMESHOULDBE"SideWinderPhotoColourBalancer.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober20102015versionF2cdC:\SideWinderColourBalancer\engine\sidewinderutil"MultiDimArr.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober2010"C:\ProgramFiles\Java\jdk1.5.0_07\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.5.0_07\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer"C:\ProgramFiles\Java\jdk1.6.0_22\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.6.0_22\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer*/import java.awt.*import java.awt.event.ActionListenerimport java.awt.event.ActionEventimport java.awt.Dimensionimport java.awt.image.*import javax.swing.event.*import java.awt.event.ItemEventimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport javax.swing.*import javax.swing.filechooser.FileFilter//importjavax.swing.filechooser.FileNameExtensionFilterimport java.io.*import javax.imageio.*import javax.imageio.spi.*import javax.imageio.stream.*import javax.imageio.metadata.*//import java.util.*import java.util.Listimport java.util.Iterator//importsidewinderutil.*//importsidewinderutil.MultiDimArr//importsidewinderutil.Rotators//importsidewinderutil.Cropcoords//importsidewinderutil.IMGextensions//importsidewinderutil.FlipInvert//import java.awt.font.*import java.awt.geom.*import java.awt.FontMetricsimport java.awt.font.LineMetricsimport java.awt.GraphicsEnvironment//class SidewinderPhotoColourBalancer extends javax.swing.JFrame implements java.awt.event.ActionListener,java.awt.event.ItemListener{private final String[] uibuttext={"Up","Down","Up","Down","Up","Down","Up","Down","Open","Save"}private final String[] uibuttcommand={"REDUP","REDDOWN","GREENUP","GREENDOWN","BLUEUP","BLUEDOWN","WHITEUP","WHITEDOWN","OPENFILE","SAVAS"}private final java.awt.Color[] cols = {new Color(255,0,0),new Color(0,255,0),new Color(0,0,255),new Color(0,0,0),new Color(255,255,255)}//JCheckBoxchkwhtclbg//staticjava.util.IteratoriwrtRsstatic javax.imageio.ImageIO ioStreamSyscalls2 //INNERCLASSESCANNOTHAVESTATICDECLARATIONSstatic java.util.Iterator iwrtRs //INNERCLASSESCANNOTHAVESTATICDECLARATIONSRGBchangeCoeffLinear coloffl//RGBchangeCoeffContrastcoloffcRGBchangeCoeffLinearSingle coloffsRGBchangeCoeffLinearSingleHueSetter colHueRGBchangeCoeffLinearGammaSetter rgbSetgammHueBoard huQuickBoardColour qbrdFontTextBoard fontextbaud////JProgressBarwrkprog//WorkBarwrkPROGWorkWindowProgressor wrkprogessWorkBar workjava.awt.Image sw32ico//int alngPValjava.util.Timer tmObject wimg //WritImgOutJPEGWritImgOutPNGWritImgOutBMPFrame dialFramSplashframe splatter//JButton bwbttn//FchComp pfcJPanel pl//javax.swing.JSplitPane panesplitjavax.swing.JPanel labpanjava.awt.image.ImageObserver obsrvlabjavax.swing.JViewport[] panviewset //javax.swing.JPanel[] panset //javax.swing.JScrollPane[] panscro //javax.swing.JTextArea metaPneJButton[] colbuttJCheckBox thumboo,thumbleepDefaultComboBoxModel[] inpcombomodsetJComboBox[] inptnumsDefaultComboBoxModel szcombomodJComboBox joxint rsZidx //comboindexforresizeint oldrsZidxImageWriteParam wrtPrmJPanel toolpan,conslcntbttjava.io.FileOutputStream foutstrm//java.io.RandomAccessFilefoutstrm//java.io.Filefoutstrm//javax.imageio.stream.FileImageOutputStreamfoutstrmConvertToBandW bnwWritableRaster wrasMultiDimArr rgbDimArrRotators roTor //roTor=newRotators(bumi.getType())//ThreadReduxPriorthePRThreadRedux1 the1 //=newThreadRedux1()ThreadRedux2 the2ThreadRedux3 the3//ThreadRedux2theOther//=newThreadRedux2(e.getActionCommand())actComm=e.getActionCommand()String actCommString passPaneint imHint lenwshort[][] red_Overstepshort[][] green_Overstepshort[][] blue_Overstep//MULTIDIMINITSImageSysTest imcanvGraphics glong tme = 50ImWin tpnFont uifontJFileChooser flchsJFrame parentFile inputimageString curropendirString currsavdir//==errorfileiftheerrorhandlerhasaproblemFile errFil //errorfileinsu.datPrintStream pr //errorprintstramforstackTracemethodreadyString errFint buttonjump=1//

    JButton rdysz,mkrsz,quickclru,quickclrd,huebordJTextField lngz,wzd,hzd

    //JPanel[] bgbut//javax.imageio.ImageWriteriwRTjavax.imageio.IIOParamController imPrmCntString app_Classpath_PATH,app_PATH,wneibyte[] sysOSString flsepString linesepboolean firstopenedisboolean guiOpOccurring////thumbsizerpanelJFrame thmbFrmJPanel frmpanlJLabel settJComboBox settLongJButton setchoiceDefaultComboBoxModel thmszint szMkThmb////THUMBVIEWERJFrame thumbVIEWJScrollPane vwscrollJViewport cviewJPanel frmevwpnlJPanel compvwJLabel[] thmImgViewString thumbinf//JPanel contain,containR,containL,contButtRow,crpWHlab,crpWHfields,crpXYfields,crpXYlabJButton crpSet,crpClr,crpCrop,crpRccw,crpcw,crpRFror,crpRmror,crptxtJTextField widefield,heightfield,xfield,yfieldJLabel wideLab,heightLab,xfieldLab,yfieldLabjava.util.Locale AorialeComponentOrientation AcmpoDefaultComboBoxModel omodJComboBox crxboolean cropsysstate//BufferedImagecopybumi//GraphicsgGraphics ggRectangle rb//NESTEDREADERCLASSPARTSstatic ImageIO ioStreamSyscallsstatic java.util.Iterator imReaders //java.util.IteratorimReaders//javax.imageio.stream.ImageInputStream imgInpStrjavax.imageio.ImageReader readIMGjavax.imageio.ImageReadParam rdrPRMjavax.imageio.IIOImage iioiMIGBufferedImage bumiImage bumiSZpaint//javax.imageio.metadata.IIOMetadata imgIIOmtdajavax.imageio.metadata.IIOMetadata imgIIOmtdaRead//org.w3c.dom.Noderootnod//StringmtdaTreeString imgfilenameFile imgFilingFileInputStream flimstrm//http://www.oracle.com/technetwork/articles/javase/generics136597.htmljava.util.List imgThmbNl//int numThumb//String[] args/*"180flip.png","0blueminus.png","1blueplus.png","2cropclear.png","3cropdo.png","4cropset.png","5doresize.png","6gammapply.png","7gammatry.png","8greenminus.png","9greenplus.png","10hueboard.png","11longside.png","12mirror.png","13open.png","14quickboardminus.png","15quickboardplus.png","16redminus.png","17redplus.png","18rotateccw.png","19rotatecw.png","20saveas.png","21textboard.png","22textclear.png","23textry2.png","24textsize.png","25toblackandwhite.png","26whiteminus.png","27whiteplus.png"}28*/String icopathString icoextfinal String[] appicons = {"180flip","blueminus","blueplus","cropclear","cropdo","cropset","doresize","gammapply","gammatry","greenminus","greenplus","hueboard","longside","mirror","open","quickboardminus","quickboardplus","redminus","redplus","rotateccw","rotatecw","saveas","textboard","textclear","textry2","textsize","toblackandwhite","whiteminus","whiteplus"}Image[] appiconsIMG

    //CONSTRUCTORFOLLOWSSidewinderPhotoColourBalancer(String[] args){ //takesastringargfromdraganddroponiconlater//INSIDECONSTRUCTORthis.args=args//firstopenedis=falsecropsysstate=falseAoriale = (java.util.Locale)Locale.US //java.util.LocaleAorialeComponentOrientationAcmpoAcmpo = ComponentOrientation.getOrientation(Aoriale)setComponentOrientation(Acmpo)try{flsep=System.getProperty("file.separator")linesep=System.getProperty("line.separator")curropendir = System.getProperty("user.home")currsavdir = System.getProperty("user.home")sysOS=(System.getProperty("os.name")).getBytes("ISO88591")wnei = new String(sysOS,0,sysOS.length)app_Classpath_PATH=System.getProperty("java.class.path")//if((wnei.equals("WindowsXP"))||(wnei.equals("WindowsNT"))||(wnei.equals("Windows2000"))||(wnei.equals("Windows98"))||(wnei.equals("WindowsMe"))||(wnei.equals("Windows2003"))||(wnei.equals("Windows_NT"))||(wnei.equals("WindowsNT(unknown)"))||(wnei.equals("WindowsVista"))){app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf((flsep+"engine"))))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsep+"ico"+flsepicoext=".gif"applicationIconMaker()}else{app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf(flsep+"engine")))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsepicoext=".png" //req.tobe.giftestonlyapplicationIconMaker()}}catch(java.io.UnsupportedEncodingException unspenc){

    }finally{}//==instantiateerrorhandlerfortheerrorhandler(doublestageifthefirstfails)

    try{errF=app_PATH+flsep+"dat"+flsep+"errTraceSidewinder.txt"errFil=new File(errF)pr=new PrintStream(((OutputStream)new FileOutputStream(errFil,true)))//==//eiyti.printStackTrace(pr)}catch(java.io.FileNotFoundException fifterr){System.out.println("ConstructorEXCEPTION:java.io.FileNotFoundException"+errF+"ErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}catch(java.lang.Exception excA){System.out.println("ConstructorEXCEPTION:java.lang.ExceptionErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}finally{}

    try{String sw400pth = app_PATH+flsep+"dat"+flsep+"SidewinderA400.jpg"

    inputimage = new File(sw400pth)splatter = new Splashframe(sw400pth )uifont = ((Font)splatter.appfon) //,1,8)//(nopointing)originalwillsoonbeinanullclassimcanv = new ImageSysTest(inputimage) //GETSTHEIMAGE}catch(java.io.FileNotFoundException finotfn){finotfn.printStackTrace(pr)}catch(javax.imageio.IIOException imgioexc){imgioexc.printStackTrace(pr)}catch(java.io.IOException ioexconst){ioexconst.printStackTrace(pr)}catch(java.lang.Exception excafAS){stackExPasthru((Throwable)excafAS)}finally{}/*catch(java.io.IOExceptionioexconst){ioexconst.printStackTrace(pr)}*///rsZidx=0oldrsZidx=0//splatter.repaint(((long)newLong("10").longValue()))splatter.toFront()splatter.repaint()splatter.mssg="StartingSidewinder........"splatter.mssgPrs()//splatter.sidewindersplash.paintComponent(splatter.sidewindersplash.getGraphics())passPane=""bgbut = new JPanel[4] //WAS4NOW3bgbut[0] = new JPanel()bgbut[0].setPreferredSize(new Dimension(210,65))bgbut[0].setSize(new Dimension(210,65))bgbut[0].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[0].setBackground(new Color(255,0,0))bgbut[1] = new JPanel()bgbut[1].setPreferredSize(new Dimension(210,65))bgbut[1].setSize(new Dimension(210,65))bgbut[1].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[1].setBackground(new Color(0,255,0))bgbut[2] = new JPanel()bgbut[2].setPreferredSize(new Dimension(210,65))bgbut[2].setSize(new Dimension(210,65))bgbut[2].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[2].setBackground(new Color(0,0,255))bgbut[3] = new JPanel()bgbut[3].setPreferredSize(new Dimension(210,65))bgbut[3].setSize(new Dimension(210,65))bgbut[3].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[3].setBackground(new Color(255,255,255))//createButt()deledsplatter.toFront()splatter.repaint()splatter.mssg="Sidewinder:LoadingListGUIParts........"splatter.mssgPrs()szcombomod = new javax.swing.DefaultComboBoxModel()szcombomod.addElement((Object)"1/1")szcombomod.addElement((Object)"3/4")szcombomod.addElement((Object)"2/3")szcombomod.addElement((Object)"1/2")szcombomod.addElement((Object)"5/12")szcombomod.addElement((Object)"1/3")szcombomod.addElement((Object)"1/4")szcombomod.addElement((Object)"1/5") //szcombomod.addElement((Object)"3/16") //szcombomod.addElement((Object)"1/6") //szcombomod.addElement((Object)"1/8")szcombomod.addElement((Object)"1/10")szcombomod.addElement((Object)"1/12")szcombomod.addElement((Object)"1/16")jox = new JComboBox(szcombomod)jox.addItemListener(this)inpcombomodset = new javax.swing.DefaultComboBoxModel[4]for(int ckco=0(ckcohz){longside=true}

    float coef=0float lngz = new Integer(lsdz).floatValue()float hiz = new Integer(hz).floatValue()float wiz = new Integer(wz).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//try{java.awt.Image bmiresiz = quickImg(wdin,hdin)BufferedImage bu = new BufferedImage(wdin,hdin,bumi.getType())Graphics gr=bu.getGraphics()gr.drawImage(bmiresiz,0,0,null)makeQuickBoard(bu,app_PATH,wdin,hdin,upordown)}catch(Exception exsxa){//System.out.println(exsxa.getMessage())exsxa.printStackTrace(pr)}finally{}}//enmeth

    void mcHue(){hu = new HueBoard(this) //WARNINGTESTPARAMETERSFEDONLY!!!!

    }//enmeth

    ////setValue()//repaint()

    void rotateCW(){work.makeParamWork(100) //swinder.bumi.getWidth()

    rotateSysClss() //newRotatorswork.setValue(10)work.repaint()//int bHI = bumi.getHeight()int bWI = bumi.getWidth()redCWRemake(bWI,bHI)//work.setValue(20)//work.repaint()//doGarbageClear()greenCWRemake(bWI,bHI)//work.setValue(30)//work.repaint()//doGarbageClear()blueCWRemake(bWI,bHI)//work.setValue(40)//work.repaint()//doGarbageClear()bmiMKrotate(bHI,bWI) //makesaCWrotatedbumi//work.setValue(50)//work.repaint()roTor = nullclearthumbL()doGarbageClear()//NOTICE(argumentsin!!!SP)FILLIN!!!MUSTBEDONEINHERErunthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//work.setValue(70)////work.repaint()//nowsetSizesetIconrepaint//!!!!!!TPNMUSTBERESET"IN"HEREtpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(bWI,bHI))tpn.repaint()//makeImgRsz(oldrsZidx)//work.setValue(100)//work.repaint()metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    void rotateCCW(){rotateSysClss() //newRotatorsint bHI = bumi.getHeight()int bWI = bumi.getWidth()redCCWRemake(bWI,bHI)doGarbageClear()greenCCWRemake(bWI,bHI)doGarbageClear()blueCCWRemake(bWI,bHI)doGarbageClear()bmiMKrotate(bHI,bWI) //"swapstoH,Winsidethecallerfunction"makesaCCWrotatedbumiroTor = nullclearthumbL()doGarbageClear()////runthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//nowsetSizesetIconrepaint//tpn.setIcon(newImageIcon((java.awt.Image)bumi))//tpn.setSize(newDimension(bWI,bHI))//tpn.repaint()makeImgRsz(oldrsZidx)metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    public void actionPerformed(java.awt.event.ActionEvent e){actionComm(((String)e.getActionCommand()))//if(guiOpOccurring==false){guiOpOccurPresent(true)//JOptionPane.showMessageDialog(newJFrame(),"command(listenermethodsection):"+((String)e.getActionCommand()))try{oldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()//if(((boolean)actComm.equals("OPENFILE"))){passPane=""chooseOpenFile()if(firstopenedis==true){disnableButtons(true) //}//tpn.repaint()

    guiOpOccurPresent(false)//}else{int btyP=bumi.getType()if(((int)btyP==5) || ((int)btyP==4) || ((int)btyP==1)){ //normalRGBtruecolouroldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()if(((boolean)actComm.equals("THBOO"))&&((thumbleep.isSelected())==true)){thumbleep.setSelected(false)}else if(((boolean)actComm.equals("THBLEEP"))&&((thumboo.isSelected())==true)){thumboo.setSelected(false)}else if((boolean)actComm.equals("BLACKUNDWAAAHT")){disnableButtons(true)refreshBWmake()bnw.makeBWimage()rotationPopulator(bumi.getWidth(),bumi.getHeight())makeImgRsz(oldrsZidx)metaPne.append("===SwitchedImageToB&W==="+linesep)doGarbageClear()

    //JOptionPane.showMessageDialog(newJFrame(),"APPARRENTSEQUENCEFINNISHED???")//}else if(((boolean)actComm.equals("READYBMI"))){int wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(hz>wz){lngz.setText(hzd.getText())}else{lngz.setText(wzd.getText())}guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("BMI"))){lngz.setEnabled(false) //onlylongsideboolean longside=falseint wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(wz>hz){longside=true}String aa=wzd.getText()String ab=hzd.getText()String ac=lngz.getText()//hzd.getText()//lngz.getText()boolean a1 = chKChr(aa)boolean a2 = chKChr(ab)boolean a3 = chKChr(ac)if((a1==true)&&(a2==true)&&(a3==true)){float coef=0float lngz = new Float(ac).floatValue()float hiz = new Float(ab).floatValue()float wiz = new Float(aa).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//Image bmiresiz = bumi.getScaledInstance(wdin,hdin,4)bumi = new BufferedImage(wdin,hdin,bumi.getType())Graphics tr = bumi.getGraphics()tr.drawImage(bmiresiz,0,0,wdin,hdin,null)WritableRaster wras=bumi.getRaster()red_Overstep = rgbDimArr.colOverstepstore(0,hdin,wdin,wras)green_Overstep = rgbDimArr.colOverstepstore(1,hdin,wdin,wras)blue_Overstep = rgbDimArr.colOverstepstore(2,hdin,wdin,wras)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(wdin,hdin))doGarbageClear()//POPULATORANDMULTIDIMMARTORESETUPAFTERRESIZINGPROCEDURE//rotationPopulator(bumi.getWidth(),bumi.getHeight())oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)metaPne.append("===ResizeofImageDone(previousaspectratio)==="+linesep)metaPne.append("::NewWidth:"+wdin+""+linesep)metaPne.append("::NewHeight:"+hdin+""+linesep)//RESTOREVIEWTOTHEjoxVIEWSELECTIONSETTING}else{JOptionPane.showMessageDialog(new JFrame(),"Onlynumbertobeusedastextentries!!")}//DOGARBAGECOLLECTIONHERElngz.setEnabled(true) //onlylongside//REENABLEBUTTONSFORGUIHEREguiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SAVAS"))){chooseSaveAsFileLocation()guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SETTHUMBSZ"))){doSavesys() //"SETTHUMBSZ"isinthethumbimagelistenertrack}else if(((boolean)actComm.equals("SETCROP"))){if((cropsysstate==false)&&(((boolean)checkFieldCropval())==true)){doGarbageClear()//"setcrop"cropstater(true)oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)mkImCrpPaintSelect()doGarbageClear()}else{cropstater(false)JOptionPane.showMessageDialog(new JFrame(),"inputtypoerrorinatextentryfieldinputfieldvaluesmustbenumbers")}//enif

    disnableButtons(true)}else if(((boolean)actComm.equals("CLEARCROP"))){if(cropsysstate==true){tpn.cropIsOnflag(false)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.repaint()rotationPopulator(bumi.getWidth(),bumi.getHeight())doGarbageClear()cropstater(false)//calltotpnforextraimagenulledandthendogarbagedoGarbageClear()}disnableButtons(true)}else if(((boolean)actComm.equals("DOCROP"))){if(cropsysstate==true){doGarbageClear()//if(checkFieldCropval()==true){ //!!!checkFieldCropval(excesscodethereareotherplaceshavethistestinternalbutishere//!!!topreventclasscastexceptionherecheckFieldCropval(int newide = new Integer(widefield.getText()).intValue()int newheight = new Integer(heightfield.getText()).intValue()doGarbageClear()rotateSysClss() //newRotatorsbmiMKrotate(newide,newheight) //roTor = nulldoGarbageClear()int topLpnt = new Integer(xfield.getText()).intValue()int topRpnt = new Integer(yfield.getText()).intValue()//makethenewmodifiedarraysfromtheoriginaloverstepsredCropRemake(topLpnt,topRpnt,newide,newheight)greenCropRemake(topLpnt,topRpnt,newide,newheight)blueCropRemake(topLpnt,topRpnt,newide,newheight)rotationPopulator(bumi.getWidth(),bumi.getHeight())/*TODOSETUPCOMPLETEREASSIGNINGOFiioIMAGEOBJECTSE.T.C.FORWRITEANDREFERENCESONbumi*/tpn.setSize(new Dimension(newide,newheight))tpn.setIcon(new ImageIcon(((Image)bumi)))tpn.repaint()oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)tpn.repaint()clearthumbL()//Stringcrppa=metaPne.getText()//metaPne.setText(crppa)String msgcrpping ="CropDone:Xpos:"+xfield.getText()+"::Ypos:"+ yfield.getText()+"::Width:"+ widefield.getText()+"::Height:"+heightfield.getText()metaPne.append("===CroppedImage:==="+linesep)metaPne.append(msgcrpping+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)//note:iioimagekeptformetadata}//enifcropstater(false)doGarbageClear()}//enifdisnableButtons(true)}else if(((boolean)actComm.equals("TEXTING"))){if(tpn.getTextFlag()==false){//stopdoublepanes//BOOLEANREQUIREDHERETOSWITCHOFFImWinselectionfontextbaud = new FontTextBoard(this)//metapaneappendisdonefromtextboardclass}disnableButtons(true)}else{//===================COMPOUNDEDthe1 = new ThreadRedux1()the1.start()//===================COMPOUNDED

    }//enlistenifels

    }//enelseforIMAGERESTRAINTS

    //}//enelseforopen

    //}catch(java.lang.IllegalThreadStateException thrupt1){stackExPasthru((Throwable)thrupt1)}catch(java.lang.Exception irexc1){stackExPasthru((Throwable)irexc1)}finally{}//guiOpOccurPresent(false)//if(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()

    if(cropsysstate==true){//disnableButtons(false)crpRccw.setEnabled(false)crpcw.setEnabled(false)//!!!DONOTputguiOpOccurPresent(inhereif(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()}else{crpRccw.setEnabled(true)crpcw.setEnabled(true)if(the1!=null){the1 = null}else{disLowerButs(true)}//eninnerifelsint bHI = bumi.getHeight()int bWI = bumi.getWidth()rotationPopulator(bWI,bHI)}//enifelsdoGarbageClear()}//enifguioccurend

    }//eneventmeth

    void rotationPopulator(int bumw,int bumhi){ //argsmaybereplacedWritableRaster bumras = bumi.getRaster()int caccr = 0//System.out.println("hibum:"+hibum+"wibum"+wibum+"bumw"+bumw+"bumhi"+bumhi)while(caccr

  • /*THISistheF2Versionsomewherenearcompletedforrelease.Theoldsitewashttp://www.nicephotogjsp.netthenewsiteishttp://www.windsolarhybridaustralia.x10.mxThisapplicationisnotprincipleywritteninLinuxorWindowsandissometimesperversiononlyusableinoneortheotherOSsystem.ItisendevouredtobewrittenforbothandallWindowsandNIX'sOS'sintheonedownload...cdC:\SideWinderColourBalancer\engineFILENAMESHOULDBE"SideWinderPhotoColourBalancer.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober20102015versionF2cdC:\SideWinderColourBalancer\engine\sidewinderutil"MultiDimArr.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober2010"C:\ProgramFiles\Java\jdk1.5.0_07\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.5.0_07\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer"C:\ProgramFiles\Java\jdk1.6.0_22\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.6.0_22\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer*/import java.awt.*import java.awt.event.ActionListenerimport java.awt.event.ActionEventimport java.awt.Dimensionimport java.awt.image.*import javax.swing.event.*import java.awt.event.ItemEventimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport javax.swing.*import javax.swing.filechooser.FileFilter//importjavax.swing.filechooser.FileNameExtensionFilterimport java.io.*import javax.imageio.*import javax.imageio.spi.*import javax.imageio.stream.*import javax.imageio.metadata.*//import java.util.*import java.util.Listimport java.util.Iterator//importsidewinderutil.*//importsidewinderutil.MultiDimArr//importsidewinderutil.Rotators//importsidewinderutil.Cropcoords//importsidewinderutil.IMGextensions//importsidewinderutil.FlipInvert//import java.awt.font.*import java.awt.geom.*import java.awt.FontMetricsimport java.awt.font.LineMetricsimport java.awt.GraphicsEnvironment//class SidewinderPhotoColourBalancer extends javax.swing.JFrame implements java.awt.event.ActionListener,java.awt.event.ItemListener{private final String[] uibuttext={"Up","Down","Up","Down","Up","Down","Up","Down","Open","Save"}private final String[] uibuttcommand={"REDUP","REDDOWN","GREENUP","GREENDOWN","BLUEUP","BLUEDOWN","WHITEUP","WHITEDOWN","OPENFILE","SAVAS"}private final java.awt.Color[] cols = {new Color(255,0,0),new Color(0,255,0),new Color(0,0,255),new Color(0,0,0),new Color(255,255,255)}//JCheckBoxchkwhtclbg//staticjava.util.IteratoriwrtRsstatic javax.imageio.ImageIO ioStreamSyscalls2 //INNERCLASSESCANNOTHAVESTATICDECLARATIONSstatic java.util.Iterator iwrtRs //INNERCLASSESCANNOTHAVESTATICDECLARATIONSRGBchangeCoeffLinear coloffl//RGBchangeCoeffContrastcoloffcRGBchangeCoeffLinearSingle coloffsRGBchangeCoeffLinearSingleHueSetter colHueRGBchangeCoeffLinearGammaSetter rgbSetgammHueBoard huQuickBoardColour qbrdFontTextBoard fontextbaud////JProgressBarwrkprog//WorkBarwrkPROGWorkWindowProgressor wrkprogessWorkBar workjava.awt.Image sw32ico//int alngPValjava.util.Timer tmObject wimg //WritImgOutJPEGWritImgOutPNGWritImgOutBMPFrame dialFramSplashframe splatter//JButton bwbttn//FchComp pfcJPanel pl//javax.swing.JSplitPane panesplitjavax.swing.JPanel labpanjava.awt.image.ImageObserver obsrvlabjavax.swing.JViewport[] panviewset //javax.swing.JPanel[] panset //javax.swing.JScrollPane[] panscro //javax.swing.JTextArea metaPneJButton[] colbuttJCheckBox thumboo,thumbleepDefaultComboBoxModel[] inpcombomodsetJComboBox[] inptnumsDefaultComboBoxModel szcombomodJComboBox joxint rsZidx //comboindexforresizeint oldrsZidxImageWriteParam wrtPrmJPanel toolpan,conslcntbttjava.io.FileOutputStream foutstrm//java.io.RandomAccessFilefoutstrm//java.io.Filefoutstrm//javax.imageio.stream.FileImageOutputStreamfoutstrmConvertToBandW bnwWritableRaster wrasMultiDimArr rgbDimArrRotators roTor //roTor=newRotators(bumi.getType())//ThreadReduxPriorthePRThreadRedux1 the1 //=newThreadRedux1()ThreadRedux2 the2ThreadRedux3 the3//ThreadRedux2theOther//=newThreadRedux2(e.getActionCommand())actComm=e.getActionCommand()String actCommString passPaneint imHint lenwshort[][] red_Overstepshort[][] green_Overstepshort[][] blue_Overstep//MULTIDIMINITSImageSysTest imcanvGraphics glong tme = 50ImWin tpnFont uifontJFileChooser flchsJFrame parentFile inputimageString curropendirString currsavdir//==errorfileiftheerrorhandlerhasaproblemFile errFil //errorfileinsu.datPrintStream pr //errorprintstramforstackTracemethodreadyString errFint buttonjump=1//

    JButton rdysz,mkrsz,quickclru,quickclrd,huebordJTextField lngz,wzd,hzd

    //JPanel[] bgbut//javax.imageio.ImageWriteriwRTjavax.imageio.IIOParamController imPrmCntString app_Classpath_PATH,app_PATH,wneibyte[] sysOSString flsepString linesepboolean firstopenedisboolean guiOpOccurring////thumbsizerpanelJFrame thmbFrmJPanel frmpanlJLabel settJComboBox settLongJButton setchoiceDefaultComboBoxModel thmszint szMkThmb////THUMBVIEWERJFrame thumbVIEWJScrollPane vwscrollJViewport cviewJPanel frmevwpnlJPanel compvwJLabel[] thmImgViewString thumbinf//JPanel contain,containR,containL,contButtRow,crpWHlab,crpWHfields,crpXYfields,crpXYlabJButton crpSet,crpClr,crpCrop,crpRccw,crpcw,crpRFror,crpRmror,crptxtJTextField widefield,heightfield,xfield,yfieldJLabel wideLab,heightLab,xfieldLab,yfieldLabjava.util.Locale AorialeComponentOrientation AcmpoDefaultComboBoxModel omodJComboBox crxboolean cropsysstate//BufferedImagecopybumi//GraphicsgGraphics ggRectangle rb//NESTEDREADERCLASSPARTSstatic ImageIO ioStreamSyscallsstatic java.util.Iterator imReaders //java.util.IteratorimReaders//javax.imageio.stream.ImageInputStream imgInpStrjavax.imageio.ImageReader readIMGjavax.imageio.ImageReadParam rdrPRMjavax.imageio.IIOImage iioiMIGBufferedImage bumiImage bumiSZpaint//javax.imageio.metadata.IIOMetadata imgIIOmtdajavax.imageio.metadata.IIOMetadata imgIIOmtdaRead//org.w3c.dom.Noderootnod//StringmtdaTreeString imgfilenameFile imgFilingFileInputStream flimstrm//http://www.oracle.com/technetwork/articles/javase/generics136597.htmljava.util.List imgThmbNl//int numThumb//String[] args/*"180flip.png","0blueminus.png","1blueplus.png","2cropclear.png","3cropdo.png","4cropset.png","5doresize.png","6gammapply.png","7gammatry.png","8greenminus.png","9greenplus.png","10hueboard.png","11longside.png","12mirror.png","13open.png","14quickboardminus.png","15quickboardplus.png","16redminus.png","17redplus.png","18rotateccw.png","19rotatecw.png","20saveas.png","21textboard.png","22textclear.png","23textry2.png","24textsize.png","25toblackandwhite.png","26whiteminus.png","27whiteplus.png"}28*/String icopathString icoextfinal String[] appicons = {"180flip","blueminus","blueplus","cropclear","cropdo","cropset","doresize","gammapply","gammatry","greenminus","greenplus","hueboard","longside","mirror","open","quickboardminus","quickboardplus","redminus","redplus","rotateccw","rotatecw","saveas","textboard","textclear","textry2","textsize","toblackandwhite","whiteminus","whiteplus"}Image[] appiconsIMG

    //CONSTRUCTORFOLLOWSSidewinderPhotoColourBalancer(String[] args){ //takesastringargfromdraganddroponiconlater//INSIDECONSTRUCTORthis.args=args//firstopenedis=falsecropsysstate=falseAoriale = (java.util.Locale)Locale.US //java.util.LocaleAorialeComponentOrientationAcmpoAcmpo = ComponentOrientation.getOrientation(Aoriale)setComponentOrientation(Acmpo)try{flsep=System.getProperty("file.separator")linesep=System.getProperty("line.separator")curropendir = System.getProperty("user.home")currsavdir = System.getProperty("user.home")sysOS=(System.getProperty("os.name")).getBytes("ISO88591")wnei = new String(sysOS,0,sysOS.length)app_Classpath_PATH=System.getProperty("java.class.path")//if((wnei.equals("WindowsXP"))||(wnei.equals("WindowsNT"))||(wnei.equals("Windows2000"))||(wnei.equals("Windows98"))||(wnei.equals("WindowsMe"))||(wnei.equals("Windows2003"))||(wnei.equals("Windows_NT"))||(wnei.equals("WindowsNT(unknown)"))||(wnei.equals("WindowsVista"))){app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf((flsep+"engine"))))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsep+"ico"+flsepicoext=".gif"applicationIconMaker()}else{app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf(flsep+"engine")))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsepicoext=".png" //req.tobe.giftestonlyapplicationIconMaker()}}catch(java.io.UnsupportedEncodingException unspenc){

    }finally{}//==instantiateerrorhandlerfortheerrorhandler(doublestageifthefirstfails)

    try{errF=app_PATH+flsep+"dat"+flsep+"errTraceSidewinder.txt"errFil=new File(errF)pr=new PrintStream(((OutputStream)new FileOutputStream(errFil,true)))//==//eiyti.printStackTrace(pr)}catch(java.io.FileNotFoundException fifterr){System.out.println("ConstructorEXCEPTION:java.io.FileNotFoundException"+errF+"ErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}catch(java.lang.Exception excA){System.out.println("ConstructorEXCEPTION:java.lang.ExceptionErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}finally{}

    try{String sw400pth = app_PATH+flsep+"dat"+flsep+"SidewinderA400.jpg"

    inputimage = new File(sw400pth)splatter = new Splashframe(sw400pth )uifont = ((Font)splatter.appfon) //,1,8)//(nopointing)originalwillsoonbeinanullclassimcanv = new ImageSysTest(inputimage) //GETSTHEIMAGE}catch(java.io.FileNotFoundException finotfn){finotfn.printStackTrace(pr)}catch(javax.imageio.IIOException imgioexc){imgioexc.printStackTrace(pr)}catch(java.io.IOException ioexconst){ioexconst.printStackTrace(pr)}catch(java.lang.Exception excafAS){stackExPasthru((Throwable)excafAS)}finally{}/*catch(java.io.IOExceptionioexconst){ioexconst.printStackTrace(pr)}*///rsZidx=0oldrsZidx=0//splatter.repaint(((long)newLong("10").longValue()))splatter.toFront()splatter.repaint()splatter.mssg="StartingSidewinder........"splatter.mssgPrs()//splatter.sidewindersplash.paintComponent(splatter.sidewindersplash.getGraphics())passPane=""bgbut = new JPanel[4] //WAS4NOW3bgbut[0] = new JPanel()bgbut[0].setPreferredSize(new Dimension(210,65))bgbut[0].setSize(new Dimension(210,65))bgbut[0].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[0].setBackground(new Color(255,0,0))bgbut[1] = new JPanel()bgbut[1].setPreferredSize(new Dimension(210,65))bgbut[1].setSize(new Dimension(210,65))bgbut[1].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[1].setBackground(new Color(0,255,0))bgbut[2] = new JPanel()bgbut[2].setPreferredSize(new Dimension(210,65))bgbut[2].setSize(new Dimension(210,65))bgbut[2].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[2].setBackground(new Color(0,0,255))bgbut[3] = new JPanel()bgbut[3].setPreferredSize(new Dimension(210,65))bgbut[3].setSize(new Dimension(210,65))bgbut[3].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[3].setBackground(new Color(255,255,255))//createButt()deledsplatter.toFront()splatter.repaint()splatter.mssg="Sidewinder:LoadingListGUIParts........"splatter.mssgPrs()szcombomod = new javax.swing.DefaultComboBoxModel()szcombomod.addElement((Object)"1/1")szcombomod.addElement((Object)"3/4")szcombomod.addElement((Object)"2/3")szcombomod.addElement((Object)"1/2")szcombomod.addElement((Object)"5/12")szcombomod.addElement((Object)"1/3")szcombomod.addElement((Object)"1/4")szcombomod.addElement((Object)"1/5") //szcombomod.addElement((Object)"3/16") //szcombomod.addElement((Object)"1/6") //szcombomod.addElement((Object)"1/8")szcombomod.addElement((Object)"1/10")szcombomod.addElement((Object)"1/12")szcombomod.addElement((Object)"1/16")jox = new JComboBox(szcombomod)jox.addItemListener(this)inpcombomodset = new javax.swing.DefaultComboBoxModel[4]for(int ckco=0(ckcohz){longside=true}

    float coef=0float lngz = new Integer(lsdz).floatValue()float hiz = new Integer(hz).floatValue()float wiz = new Integer(wz).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//try{java.awt.Image bmiresiz = quickImg(wdin,hdin)BufferedImage bu = new BufferedImage(wdin,hdin,bumi.getType())Graphics gr=bu.getGraphics()gr.drawImage(bmiresiz,0,0,null)makeQuickBoard(bu,app_PATH,wdin,hdin,upordown)}catch(Exception exsxa){//System.out.println(exsxa.getMessage())exsxa.printStackTrace(pr)}finally{}}//enmeth

    void mcHue(){hu = new HueBoard(this) //WARNINGTESTPARAMETERSFEDONLY!!!!

    }//enmeth

    ////setValue()//repaint()

    void rotateCW(){work.makeParamWork(100) //swinder.bumi.getWidth()

    rotateSysClss() //newRotatorswork.setValue(10)work.repaint()//int bHI = bumi.getHeight()int bWI = bumi.getWidth()redCWRemake(bWI,bHI)//work.setValue(20)//work.repaint()//doGarbageClear()greenCWRemake(bWI,bHI)//work.setValue(30)//work.repaint()//doGarbageClear()blueCWRemake(bWI,bHI)//work.setValue(40)//work.repaint()//doGarbageClear()bmiMKrotate(bHI,bWI) //makesaCWrotatedbumi//work.setValue(50)//work.repaint()roTor = nullclearthumbL()doGarbageClear()//NOTICE(argumentsin!!!SP)FILLIN!!!MUSTBEDONEINHERErunthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//work.setValue(70)////work.repaint()//nowsetSizesetIconrepaint//!!!!!!TPNMUSTBERESET"IN"HEREtpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(bWI,bHI))tpn.repaint()//makeImgRsz(oldrsZidx)//work.setValue(100)//work.repaint()metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    void rotateCCW(){rotateSysClss() //newRotatorsint bHI = bumi.getHeight()int bWI = bumi.getWidth()redCCWRemake(bWI,bHI)doGarbageClear()greenCCWRemake(bWI,bHI)doGarbageClear()blueCCWRemake(bWI,bHI)doGarbageClear()bmiMKrotate(bHI,bWI) //"swapstoH,Winsidethecallerfunction"makesaCCWrotatedbumiroTor = nullclearthumbL()doGarbageClear()////runthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//nowsetSizesetIconrepaint//tpn.setIcon(newImageIcon((java.awt.Image)bumi))//tpn.setSize(newDimension(bWI,bHI))//tpn.repaint()makeImgRsz(oldrsZidx)metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    public void actionPerformed(java.awt.event.ActionEvent e){actionComm(((String)e.getActionCommand()))//if(guiOpOccurring==false){guiOpOccurPresent(true)//JOptionPane.showMessageDialog(newJFrame(),"command(listenermethodsection):"+((String)e.getActionCommand()))try{oldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()//if(((boolean)actComm.equals("OPENFILE"))){passPane=""chooseOpenFile()if(firstopenedis==true){disnableButtons(true) //}//tpn.repaint()

    guiOpOccurPresent(false)//}else{int btyP=bumi.getType()if(((int)btyP==5) || ((int)btyP==4) || ((int)btyP==1)){ //normalRGBtruecolouroldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()if(((boolean)actComm.equals("THBOO"))&&((thumbleep.isSelected())==true)){thumbleep.setSelected(false)}else if(((boolean)actComm.equals("THBLEEP"))&&((thumboo.isSelected())==true)){thumboo.setSelected(false)}else if((boolean)actComm.equals("BLACKUNDWAAAHT")){disnableButtons(true)refreshBWmake()bnw.makeBWimage()rotationPopulator(bumi.getWidth(),bumi.getHeight())makeImgRsz(oldrsZidx)metaPne.append("===SwitchedImageToB&W==="+linesep)doGarbageClear()

    //JOptionPane.showMessageDialog(newJFrame(),"APPARRENTSEQUENCEFINNISHED???")//}else if(((boolean)actComm.equals("READYBMI"))){int wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(hz>wz){lngz.setText(hzd.getText())}else{lngz.setText(wzd.getText())}guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("BMI"))){lngz.setEnabled(false) //onlylongsideboolean longside=falseint wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(wz>hz){longside=true}String aa=wzd.getText()String ab=hzd.getText()String ac=lngz.getText()//hzd.getText()//lngz.getText()boolean a1 = chKChr(aa)boolean a2 = chKChr(ab)boolean a3 = chKChr(ac)if((a1==true)&&(a2==true)&&(a3==true)){float coef=0float lngz = new Float(ac).floatValue()float hiz = new Float(ab).floatValue()float wiz = new Float(aa).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//Image bmiresiz = bumi.getScaledInstance(wdin,hdin,4)bumi = new BufferedImage(wdin,hdin,bumi.getType())Graphics tr = bumi.getGraphics()tr.drawImage(bmiresiz,0,0,wdin,hdin,null)WritableRaster wras=bumi.getRaster()red_Overstep = rgbDimArr.colOverstepstore(0,hdin,wdin,wras)green_Overstep = rgbDimArr.colOverstepstore(1,hdin,wdin,wras)blue_Overstep = rgbDimArr.colOverstepstore(2,hdin,wdin,wras)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(wdin,hdin))doGarbageClear()//POPULATORANDMULTIDIMMARTORESETUPAFTERRESIZINGPROCEDURE//rotationPopulator(bumi.getWidth(),bumi.getHeight())oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)metaPne.append("===ResizeofImageDone(previousaspectratio)==="+linesep)metaPne.append("::NewWidth:"+wdin+""+linesep)metaPne.append("::NewHeight:"+hdin+""+linesep)//RESTOREVIEWTOTHEjoxVIEWSELECTIONSETTING}else{JOptionPane.showMessageDialog(new JFrame(),"Onlynumbertobeusedastextentries!!")}//DOGARBAGECOLLECTIONHERElngz.setEnabled(true) //onlylongside//REENABLEBUTTONSFORGUIHEREguiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SAVAS"))){chooseSaveAsFileLocation()guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SETTHUMBSZ"))){doSavesys() //"SETTHUMBSZ"isinthethumbimagelistenertrack}else if(((boolean)actComm.equals("SETCROP"))){if((cropsysstate==false)&&(((boolean)checkFieldCropval())==true)){doGarbageClear()//"setcrop"cropstater(true)oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)mkImCrpPaintSelect()doGarbageClear()}else{cropstater(false)JOptionPane.showMessageDialog(new JFrame(),"inputtypoerrorinatextentryfieldinputfieldvaluesmustbenumbers")}//enif

    disnableButtons(true)}else if(((boolean)actComm.equals("CLEARCROP"))){if(cropsysstate==true){tpn.cropIsOnflag(false)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.repaint()rotationPopulator(bumi.getWidth(),bumi.getHeight())doGarbageClear()cropstater(false)//calltotpnforextraimagenulledandthendogarbagedoGarbageClear()}disnableButtons(true)}else if(((boolean)actComm.equals("DOCROP"))){if(cropsysstate==true){doGarbageClear()//if(checkFieldCropval()==true){ //!!!checkFieldCropval(excesscodethereareotherplaceshavethistestinternalbutishere//!!!topreventclasscastexceptionherecheckFieldCropval(int newide = new Integer(widefield.getText()).intValue()int newheight = new Integer(heightfield.getText()).intValue()doGarbageClear()rotateSysClss() //newRotatorsbmiMKrotate(newide,newheight) //roTor = nulldoGarbageClear()int topLpnt = new Integer(xfield.getText()).intValue()int topRpnt = new Integer(yfield.getText()).intValue()//makethenewmodifiedarraysfromtheoriginaloverstepsredCropRemake(topLpnt,topRpnt,newide,newheight)greenCropRemake(topLpnt,topRpnt,newide,newheight)blueCropRemake(topLpnt,topRpnt,newide,newheight)rotationPopulator(bumi.getWidth(),bumi.getHeight())/*TODOSETUPCOMPLETEREASSIGNINGOFiioIMAGEOBJECTSE.T.C.FORWRITEANDREFERENCESONbumi*/tpn.setSize(new Dimension(newide,newheight))tpn.setIcon(new ImageIcon(((Image)bumi)))tpn.repaint()oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)tpn.repaint()clearthumbL()//Stringcrppa=metaPne.getText()//metaPne.setText(crppa)String msgcrpping ="CropDone:Xpos:"+xfield.getText()+"::Ypos:"+ yfield.getText()+"::Width:"+ widefield.getText()+"::Height:"+heightfield.getText()metaPne.append("===CroppedImage:==="+linesep)metaPne.append(msgcrpping+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)//note:iioimagekeptformetadata}//enifcropstater(false)doGarbageClear()}//enifdisnableButtons(true)}else if(((boolean)actComm.equals("TEXTING"))){if(tpn.getTextFlag()==false){//stopdoublepanes//BOOLEANREQUIREDHERETOSWITCHOFFImWinselectionfontextbaud = new FontTextBoard(this)//metapaneappendisdonefromtextboardclass}disnableButtons(true)}else{//===================COMPOUNDEDthe1 = new ThreadRedux1()the1.start()//===================COMPOUNDED

    }//enlistenifels

    }//enelseforIMAGERESTRAINTS

    //}//enelseforopen

    //}catch(java.lang.IllegalThreadStateException thrupt1){stackExPasthru((Throwable)thrupt1)}catch(java.lang.Exception irexc1){stackExPasthru((Throwable)irexc1)}finally{}//guiOpOccurPresent(false)//if(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()

    if(cropsysstate==true){//disnableButtons(false)crpRccw.setEnabled(false)crpcw.setEnabled(false)//!!!DONOTputguiOpOccurPresent(inhereif(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()}else{crpRccw.setEnabled(true)crpcw.setEnabled(true)if(the1!=null){the1 = null}else{disLowerButs(true)}//eninnerifelsint bHI = bumi.getHeight()int bWI = bumi.getWidth()rotationPopulator(bWI,bHI)}//enifelsdoGarbageClear()}//enifguioccurend

    }//eneventmeth

    void rotationPopulator(int bumw,int bumhi){ //argsmaybereplacedWritableRaster bumras = bumi.getRaster()int caccr = 0//System.out.println("hibum:"+hibum+"wibum"+wibum+"bumw"+bumw+"bumhi"+bumhi)while(caccr

  • /*THISistheF2Versionsomewherenearcompletedforrelease.Theoldsitewashttp://www.nicephotogjsp.netthenewsiteishttp://www.windsolarhybridaustralia.x10.mxThisapplicationisnotprincipleywritteninLinuxorWindowsandissometimesperversiononlyusableinoneortheotherOSsystem.ItisendevouredtobewrittenforbothandallWindowsandNIX'sOS'sintheonedownload...cdC:\SideWinderColourBalancer\engineFILENAMESHOULDBE"SideWinderPhotoColourBalancer.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober20102015versionF2cdC:\SideWinderColourBalancer\engine\sidewinderutil"MultiDimArr.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober2010"C:\ProgramFiles\Java\jdk1.5.0_07\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.5.0_07\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer"C:\ProgramFiles\Java\jdk1.6.0_22\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.6.0_22\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer*/import java.awt.*import java.awt.event.ActionListenerimport java.awt.event.ActionEventimport java.awt.Dimensionimport java.awt.image.*import javax.swing.event.*import java.awt.event.ItemEventimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport javax.swing.*import javax.swing.filechooser.FileFilter//importjavax.swing.filechooser.FileNameExtensionFilterimport java.io.*import javax.imageio.*import javax.imageio.spi.*import javax.imageio.stream.*import javax.imageio.metadata.*//import java.util.*import java.util.Listimport java.util.Iterator//importsidewinderutil.*//importsidewinderutil.MultiDimArr//importsidewinderutil.Rotators//importsidewinderutil.Cropcoords//importsidewinderutil.IMGextensions//importsidewinderutil.FlipInvert//import java.awt.font.*import java.awt.geom.*import java.awt.FontMetricsimport java.awt.font.LineMetricsimport java.awt.GraphicsEnvironment//class SidewinderPhotoColourBalancer extends javax.swing.JFrame implements java.awt.event.ActionListener,java.awt.event.ItemListener{private final String[] uibuttext={"Up","Down","Up","Down","Up","Down","Up","Down","Open","Save"}private final String[] uibuttcommand={"REDUP","REDDOWN","GREENUP","GREENDOWN","BLUEUP","BLUEDOWN","WHITEUP","WHITEDOWN","OPENFILE","SAVAS"}private final java.awt.Color[] cols = {new Color(255,0,0),new Color(0,255,0),new Color(0,0,255),new Color(0,0,0),new Color(255,255,255)}//JCheckBoxchkwhtclbg//staticjava.util.IteratoriwrtRsstatic javax.imageio.ImageIO ioStreamSyscalls2 //INNERCLASSESCANNOTHAVESTATICDECLARATIONSstatic java.util.Iterator iwrtRs //INNERCLASSESCANNOTHAVESTATICDECLARATIONSRGBchangeCoeffLinear coloffl//RGBchangeCoeffContrastcoloffcRGBchangeCoeffLinearSingle coloffsRGBchangeCoeffLinearSingleHueSetter colHueRGBchangeCoeffLinearGammaSetter rgbSetgammHueBoard huQuickBoardColour qbrdFontTextBoard fontextbaud////JProgressBarwrkprog//WorkBarwrkPROGWorkWindowProgressor wrkprogessWorkBar workjava.awt.Image sw32ico//int alngPValjava.util.Timer tmObject wimg //WritImgOutJPEGWritImgOutPNGWritImgOutBMPFrame dialFramSplashframe splatter//JButton bwbttn//FchComp pfcJPanel pl//javax.swing.JSplitPane panesplitjavax.swing.JPanel labpanjava.awt.image.ImageObserver obsrvlabjavax.swing.JViewport[] panviewset //javax.swing.JPanel[] panset //javax.swing.JScrollPane[] panscro //javax.swing.JTextArea metaPneJButton[] colbuttJCheckBox thumboo,thumbleepDefaultComboBoxModel[] inpcombomodsetJComboBox[] inptnumsDefaultComboBoxModel szcombomodJComboBox joxint rsZidx //comboindexforresizeint oldrsZidxImageWriteParam wrtPrmJPanel toolpan,conslcntbttjava.io.FileOutputStream foutstrm//java.io.RandomAccessFilefoutstrm//java.io.Filefoutstrm//javax.imageio.stream.FileImageOutputStreamfoutstrmConvertToBandW bnwWritableRaster wrasMultiDimArr rgbDimArrRotators roTor //roTor=newRotators(bumi.getType())//ThreadReduxPriorthePRThreadRedux1 the1 //=newThreadRedux1()ThreadRedux2 the2ThreadRedux3 the3//ThreadRedux2theOther//=newThreadRedux2(e.getActionCommand())actComm=e.getActionCommand()String actCommString passPaneint imHint lenwshort[][] red_Overstepshort[][] green_Overstepshort[][] blue_Overstep//MULTIDIMINITSImageSysTest imcanvGraphics glong tme = 50ImWin tpnFont uifontJFileChooser flchsJFrame parentFile inputimageString curropendirString currsavdir//==errorfileiftheerrorhandlerhasaproblemFile errFil //errorfileinsu.datPrintStream pr //errorprintstramforstackTracemethodreadyString errFint buttonjump=1//

    JButton rdysz,mkrsz,quickclru,quickclrd,huebordJTextField lngz,wzd,hzd

    //JPanel[] bgbut//javax.imageio.ImageWriteriwRTjavax.imageio.IIOParamController imPrmCntString app_Classpath_PATH,app_PATH,wneibyte[] sysOSString flsepString linesepboolean firstopenedisboolean guiOpOccurring////thumbsizerpanelJFrame thmbFrmJPanel frmpanlJLabel settJComboBox settLongJButton setchoiceDefaultComboBoxModel thmszint szMkThmb////THUMBVIEWERJFrame thumbVIEWJScrollPane vwscrollJViewport cviewJPanel frmevwpnlJPanel compvwJLabel[] thmImgViewString thumbinf//JPanel contain,containR,containL,contButtRow,crpWHlab,crpWHfields,crpXYfields,crpXYlabJButton crpSet,crpClr,crpCrop,crpRccw,crpcw,crpRFror,crpRmror,crptxtJTextField widefield,heightfield,xfield,yfieldJLabel wideLab,heightLab,xfieldLab,yfieldLabjava.util.Locale AorialeComponentOrientation AcmpoDefaultComboBoxModel omodJComboBox crxboolean cropsysstate//BufferedImagecopybumi//GraphicsgGraphics ggRectangle rb//NESTEDREADERCLASSPARTSstatic ImageIO ioStreamSyscallsstatic java.util.Iterator imReaders //java.util.IteratorimReaders//javax.imageio.stream.ImageInputStream imgInpStrjavax.imageio.ImageReader readIMGjavax.imageio.ImageReadParam rdrPRMjavax.imageio.IIOImage iioiMIGBufferedImage bumiImage bumiSZpaint//javax.imageio.metadata.IIOMetadata imgIIOmtdajavax.imageio.metadata.IIOMetadata imgIIOmtdaRead//org.w3c.dom.Noderootnod//StringmtdaTreeString imgfilenameFile imgFilingFileInputStream flimstrm//http://www.oracle.com/technetwork/articles/javase/generics136597.htmljava.util.List imgThmbNl//int numThumb//String[] args/*"180flip.png","0blueminus.png","1blueplus.png","2cropclear.png","3cropdo.png","4cropset.png","5doresize.png","6gammapply.png","7gammatry.png","8greenminus.png","9greenplus.png","10hueboard.png","11longside.png","12mirror.png","13open.png","14quickboardminus.png","15quickboardplus.png","16redminus.png","17redplus.png","18rotateccw.png","19rotatecw.png","20saveas.png","21textboard.png","22textclear.png","23textry2.png","24textsize.png","25toblackandwhite.png","26whiteminus.png","27whiteplus.png"}28*/String icopathString icoextfinal String[] appicons = {"180flip","blueminus","blueplus","cropclear","cropdo","cropset","doresize","gammapply","gammatry","greenminus","greenplus","hueboard","longside","mirror","open","quickboardminus","quickboardplus","redminus","redplus","rotateccw","rotatecw","saveas","textboard","textclear","textry2","textsize","toblackandwhite","whiteminus","whiteplus"}Image[] appiconsIMG

    //CONSTRUCTORFOLLOWSSidewinderPhotoColourBalancer(String[] args){ //takesastringargfromdraganddroponiconlater//INSIDECONSTRUCTORthis.args=args//firstopenedis=falsecropsysstate=falseAoriale = (java.util.Locale)Locale.US //java.util.LocaleAorialeComponentOrientationAcmpoAcmpo = ComponentOrientation.getOrientation(Aoriale)setComponentOrientation(Acmpo)try{flsep=System.getProperty("file.separator")linesep=System.getProperty("line.separator")curropendir = System.getProperty("user.home")currsavdir = System.getProperty("user.home")sysOS=(System.getProperty("os.name")).getBytes("ISO88591")wnei = new String(sysOS,0,sysOS.length)app_Classpath_PATH=System.getProperty("java.class.path")//if((wnei.equals("WindowsXP"))||(wnei.equals("WindowsNT"))||(wnei.equals("Windows2000"))||(wnei.equals("Windows98"))||(wnei.equals("WindowsMe"))||(wnei.equals("Windows2003"))||(wnei.equals("Windows_NT"))||(wnei.equals("WindowsNT(unknown)"))||(wnei.equals("WindowsVista"))){app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf((flsep+"engine"))))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsep+"ico"+flsepicoext=".gif"applicationIconMaker()}else{app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf(flsep+"engine")))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsepicoext=".png" //req.tobe.giftestonlyapplicationIconMaker()}}catch(java.io.UnsupportedEncodingException unspenc){

    }finally{}//==instantiateerrorhandlerfortheerrorhandler(doublestageifthefirstfails)

    try{errF=app_PATH+flsep+"dat"+flsep+"errTraceSidewinder.txt"errFil=new File(errF)pr=new PrintStream(((OutputStream)new FileOutputStream(errFil,true)))//==//eiyti.printStackTrace(pr)}catch(java.io.FileNotFoundException fifterr){System.out.println("ConstructorEXCEPTION:java.io.FileNotFoundException"+errF+"ErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}catch(java.lang.Exception excA){System.out.println("ConstructorEXCEPTION:java.lang.ExceptionErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}finally{}

    try{String sw400pth = app_PATH+flsep+"dat"+flsep+"SidewinderA400.jpg"

    inputimage = new File(sw400pth)splatter = new Splashframe(sw400pth )uifont = ((Font)splatter.appfon) //,1,8)//(nopointing)originalwillsoonbeinanullclassimcanv = new ImageSysTest(inputimage) //GETSTHEIMAGE}catch(java.io.FileNotFoundException finotfn){finotfn.printStackTrace(pr)}catch(javax.imageio.IIOException imgioexc){imgioexc.printStackTrace(pr)}catch(java.io.IOException ioexconst){ioexconst.printStackTrace(pr)}catch(java.lang.Exception excafAS){stackExPasthru((Throwable)excafAS)}finally{}/*catch(java.io.IOExceptionioexconst){ioexconst.printStackTrace(pr)}*///rsZidx=0oldrsZidx=0//splatter.repaint(((long)newLong("10").longValue()))splatter.toFront()splatter.repaint()splatter.mssg="StartingSidewinder........"splatter.mssgPrs()//splatter.sidewindersplash.paintComponent(splatter.sidewindersplash.getGraphics())passPane=""bgbut = new JPanel[4] //WAS4NOW3bgbut[0] = new JPanel()bgbut[0].setPreferredSize(new Dimension(210,65))bgbut[0].setSize(new Dimension(210,65))bgbut[0].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[0].setBackground(new Color(255,0,0))bgbut[1] = new JPanel()bgbut[1].setPreferredSize(new Dimension(210,65))bgbut[1].setSize(new Dimension(210,65))bgbut[1].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[1].setBackground(new Color(0,255,0))bgbut[2] = new JPanel()bgbut[2].setPreferredSize(new Dimension(210,65))bgbut[2].setSize(new Dimension(210,65))bgbut[2].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[2].setBackground(new Color(0,0,255))bgbut[3] = new JPanel()bgbut[3].setPreferredSize(new Dimension(210,65))bgbut[3].setSize(new Dimension(210,65))bgbut[3].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[3].setBackground(new Color(255,255,255))//createButt()deledsplatter.toFront()splatter.repaint()splatter.mssg="Sidewinder:LoadingListGUIParts........"splatter.mssgPrs()szcombomod = new javax.swing.DefaultComboBoxModel()szcombomod.addElement((Object)"1/1")szcombomod.addElement((Object)"3/4")szcombomod.addElement((Object)"2/3")szcombomod.addElement((Object)"1/2")szcombomod.addElement((Object)"5/12")szcombomod.addElement((Object)"1/3")szcombomod.addElement((Object)"1/4")szcombomod.addElement((Object)"1/5") //szcombomod.addElement((Object)"3/16") //szcombomod.addElement((Object)"1/6") //szcombomod.addElement((Object)"1/8")szcombomod.addElement((Object)"1/10")szcombomod.addElement((Object)"1/12")szcombomod.addElement((Object)"1/16")jox = new JComboBox(szcombomod)jox.addItemListener(this)inpcombomodset = new javax.swing.DefaultComboBoxModel[4]for(int ckco=0(ckcohz){longside=true}

    float coef=0float lngz = new Integer(lsdz).floatValue()float hiz = new Integer(hz).floatValue()float wiz = new Integer(wz).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//try{java.awt.Image bmiresiz = quickImg(wdin,hdin)BufferedImage bu = new BufferedImage(wdin,hdin,bumi.getType())Graphics gr=bu.getGraphics()gr.drawImage(bmiresiz,0,0,null)makeQuickBoard(bu,app_PATH,wdin,hdin,upordown)}catch(Exception exsxa){//System.out.println(exsxa.getMessage())exsxa.printStackTrace(pr)}finally{}}//enmeth

    void mcHue(){hu = new HueBoard(this) //WARNINGTESTPARAMETERSFEDONLY!!!!

    }//enmeth

    ////setValue()//repaint()

    void rotateCW(){work.makeParamWork(100) //swinder.bumi.getWidth()

    rotateSysClss() //newRotatorswork.setValue(10)work.repaint()//int bHI = bumi.getHeight()int bWI = bumi.getWidth()redCWRemake(bWI,bHI)//work.setValue(20)//work.repaint()//doGarbageClear()greenCWRemake(bWI,bHI)//work.setValue(30)//work.repaint()//doGarbageClear()blueCWRemake(bWI,bHI)//work.setValue(40)//work.repaint()//doGarbageClear()bmiMKrotate(bHI,bWI) //makesaCWrotatedbumi//work.setValue(50)//work.repaint()roTor = nullclearthumbL()doGarbageClear()//NOTICE(argumentsin!!!SP)FILLIN!!!MUSTBEDONEINHERErunthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//work.setValue(70)////work.repaint()//nowsetSizesetIconrepaint//!!!!!!TPNMUSTBERESET"IN"HEREtpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(bWI,bHI))tpn.repaint()//makeImgRsz(oldrsZidx)//work.setValue(100)//work.repaint()metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    void rotateCCW(){rotateSysClss() //newRotatorsint bHI = bumi.getHeight()int bWI = bumi.getWidth()redCCWRemake(bWI,bHI)doGarbageClear()greenCCWRemake(bWI,bHI)doGarbageClear()blueCCWRemake(bWI,bHI)doGarbageClear()bmiMKrotate(bHI,bWI) //"swapstoH,Winsidethecallerfunction"makesaCCWrotatedbumiroTor = nullclearthumbL()doGarbageClear()////runthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//nowsetSizesetIconrepaint//tpn.setIcon(newImageIcon((java.awt.Image)bumi))//tpn.setSize(newDimension(bWI,bHI))//tpn.repaint()makeImgRsz(oldrsZidx)metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    public void actionPerformed(java.awt.event.ActionEvent e){actionComm(((String)e.getActionCommand()))//if(guiOpOccurring==false){guiOpOccurPresent(true)//JOptionPane.showMessageDialog(newJFrame(),"command(listenermethodsection):"+((String)e.getActionCommand()))try{oldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()//if(((boolean)actComm.equals("OPENFILE"))){passPane=""chooseOpenFile()if(firstopenedis==true){disnableButtons(true) //}//tpn.repaint()

    guiOpOccurPresent(false)//}else{int btyP=bumi.getType()if(((int)btyP==5) || ((int)btyP==4) || ((int)btyP==1)){ //normalRGBtruecolouroldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()if(((boolean)actComm.equals("THBOO"))&&((thumbleep.isSelected())==true)){thumbleep.setSelected(false)}else if(((boolean)actComm.equals("THBLEEP"))&&((thumboo.isSelected())==true)){thumboo.setSelected(false)}else if((boolean)actComm.equals("BLACKUNDWAAAHT")){disnableButtons(true)refreshBWmake()bnw.makeBWimage()rotationPopulator(bumi.getWidth(),bumi.getHeight())makeImgRsz(oldrsZidx)metaPne.append("===SwitchedImageToB&W==="+linesep)doGarbageClear()

    //JOptionPane.showMessageDialog(newJFrame(),"APPARRENTSEQUENCEFINNISHED???")//}else if(((boolean)actComm.equals("READYBMI"))){int wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(hz>wz){lngz.setText(hzd.getText())}else{lngz.setText(wzd.getText())}guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("BMI"))){lngz.setEnabled(false) //onlylongsideboolean longside=falseint wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(wz>hz){longside=true}String aa=wzd.getText()String ab=hzd.getText()String ac=lngz.getText()//hzd.getText()//lngz.getText()boolean a1 = chKChr(aa)boolean a2 = chKChr(ab)boolean a3 = chKChr(ac)if((a1==true)&&(a2==true)&&(a3==true)){float coef=0float lngz = new Float(ac).floatValue()float hiz = new Float(ab).floatValue()float wiz = new Float(aa).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//Image bmiresiz = bumi.getScaledInstance(wdin,hdin,4)bumi = new BufferedImage(wdin,hdin,bumi.getType())Graphics tr = bumi.getGraphics()tr.drawImage(bmiresiz,0,0,wdin,hdin,null)WritableRaster wras=bumi.getRaster()red_Overstep = rgbDimArr.colOverstepstore(0,hdin,wdin,wras)green_Overstep = rgbDimArr.colOverstepstore(1,hdin,wdin,wras)blue_Overstep = rgbDimArr.colOverstepstore(2,hdin,wdin,wras)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(wdin,hdin))doGarbageClear()//POPULATORANDMULTIDIMMARTORESETUPAFTERRESIZINGPROCEDURE//rotationPopulator(bumi.getWidth(),bumi.getHeight())oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)metaPne.append("===ResizeofImageDone(previousaspectratio)==="+linesep)metaPne.append("::NewWidth:"+wdin+""+linesep)metaPne.append("::NewHeight:"+hdin+""+linesep)//RESTOREVIEWTOTHEjoxVIEWSELECTIONSETTING}else{JOptionPane.showMessageDialog(new JFrame(),"Onlynumbertobeusedastextentries!!")}//DOGARBAGECOLLECTIONHERElngz.setEnabled(true) //onlylongside//REENABLEBUTTONSFORGUIHEREguiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SAVAS"))){chooseSaveAsFileLocation()guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SETTHUMBSZ"))){doSavesys() //"SETTHUMBSZ"isinthethumbimagelistenertrack}else if(((boolean)actComm.equals("SETCROP"))){if((cropsysstate==false)&&(((boolean)checkFieldCropval())==true)){doGarbageClear()//"setcrop"cropstater(true)oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)mkImCrpPaintSelect()doGarbageClear()}else{cropstater(false)JOptionPane.showMessageDialog(new JFrame(),"inputtypoerrorinatextentryfieldinputfieldvaluesmustbenumbers")}//enif

    disnableButtons(true)}else if(((boolean)actComm.equals("CLEARCROP"))){if(cropsysstate==true){tpn.cropIsOnflag(false)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.repaint()rotationPopulator(bumi.getWidth(),bumi.getHeight())doGarbageClear()cropstater(false)//calltotpnforextraimagenulledandthendogarbagedoGarbageClear()}disnableButtons(true)}else if(((boolean)actComm.equals("DOCROP"))){if(cropsysstate==true){doGarbageClear()//if(checkFieldCropval()==true){ //!!!checkFieldCropval(excesscodethereareotherplaceshavethistestinternalbutishere//!!!topreventclasscastexceptionherecheckFieldCropval(int newide = new Integer(widefield.getText()).intValue()int newheight = new Integer(heightfield.getText()).intValue()doGarbageClear()rotateSysClss() //newRotatorsbmiMKrotate(newide,newheight) //roTor = nulldoGarbageClear()int topLpnt = new Integer(xfield.getText()).intValue()int topRpnt = new Integer(yfield.getText()).intValue()//makethenewmodifiedarraysfromtheoriginaloverstepsredCropRemake(topLpnt,topRpnt,newide,newheight)greenCropRemake(topLpnt,topRpnt,newide,newheight)blueCropRemake(topLpnt,topRpnt,newide,newheight)rotationPopulator(bumi.getWidth(),bumi.getHeight())/*TODOSETUPCOMPLETEREASSIGNINGOFiioIMAGEOBJECTSE.T.C.FORWRITEANDREFERENCESONbumi*/tpn.setSize(new Dimension(newide,newheight))tpn.setIcon(new ImageIcon(((Image)bumi)))tpn.repaint()oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)tpn.repaint()clearthumbL()//Stringcrppa=metaPne.getText()//metaPne.setText(crppa)String msgcrpping ="CropDone:Xpos:"+xfield.getText()+"::Ypos:"+ yfield.getText()+"::Width:"+ widefield.getText()+"::Height:"+heightfield.getText()metaPne.append("===CroppedImage:==="+linesep)metaPne.append(msgcrpping+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)//note:iioimagekeptformetadata}//enifcropstater(false)doGarbageClear()}//enifdisnableButtons(true)}else if(((boolean)actComm.equals("TEXTING"))){if(tpn.getTextFlag()==false){//stopdoublepanes//BOOLEANREQUIREDHERETOSWITCHOFFImWinselectionfontextbaud = new FontTextBoard(this)//metapaneappendisdonefromtextboardclass}disnableButtons(true)}else{//===================COMPOUNDEDthe1 = new ThreadRedux1()the1.start()//===================COMPOUNDED

    }//enlistenifels

    }//enelseforIMAGERESTRAINTS

    //}//enelseforopen

    //}catch(java.lang.IllegalThreadStateException thrupt1){stackExPasthru((Throwable)thrupt1)}catch(java.lang.Exception irexc1){stackExPasthru((Throwable)irexc1)}finally{}//guiOpOccurPresent(false)//if(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()

    if(cropsysstate==true){//disnableButtons(false)crpRccw.setEnabled(false)crpcw.setEnabled(false)//!!!DONOTputguiOpOccurPresent(inhereif(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()}else{crpRccw.setEnabled(true)crpcw.setEnabled(true)if(the1!=null){the1 = null}else{disLowerButs(true)}//eninnerifelsint bHI = bumi.getHeight()int bWI = bumi.getWidth()rotationPopulator(bWI,bHI)}//enifelsdoGarbageClear()}//enifguioccurend

    }//eneventmeth

    void rotationPopulator(int bumw,int bumhi){ //argsmaybereplacedWritableRaster bumras = bumi.getRaster()int caccr = 0//System.out.println("hibum:"+hibum+"wibum"+wibum+"bumw"+bumw+"bumhi"+bumhi)while(caccr

  • /*THISistheF2Versionsomewherenearcompletedforrelease.Theoldsitewashttp://www.nicephotogjsp.netthenewsiteishttp://www.windsolarhybridaustralia.x10.mxThisapplicationisnotprincipleywritteninLinuxorWindowsandissometimesperversiononlyusableinoneortheotherOSsystem.ItisendevouredtobewrittenforbothandallWindowsandNIX'sOS'sintheonedownload...cdC:\SideWinderColourBalancer\engineFILENAMESHOULDBE"SideWinderPhotoColourBalancer.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober20102015versionF2cdC:\SideWinderColourBalancer\engine\sidewinderutil"MultiDimArr.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober2010"C:\ProgramFiles\Java\jdk1.5.0_07\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.5.0_07\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer"C:\ProgramFiles\Java\jdk1.6.0_22\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.6.0_22\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer*/import java.awt.*import java.awt.event.ActionListenerimport java.awt.event.ActionEventimport java.awt.Dimensionimport java.awt.image.*import javax.swing.event.*import java.awt.event.ItemEventimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport javax.swing.*import javax.swing.filechooser.FileFilter//importjavax.swing.filechooser.FileNameExtensionFilterimport java.io.*import javax.imageio.*import javax.imageio.spi.*import javax.imageio.stream.*import javax.imageio.metadata.*//import java.util.*import java.util.Listimport java.util.Iterator//importsidewinderutil.*//importsidewinderutil.MultiDimArr//importsidewinderutil.Rotators//importsidewinderutil.Cropcoords//importsidewinderutil.IMGextensions//importsidewinderutil.FlipInvert//import java.awt.font.*import java.awt.geom.*import java.awt.FontMetricsimport java.awt.font.LineMetricsimport java.awt.GraphicsEnvironment//class SidewinderPhotoColourBalancer extends javax.swing.JFrame implements java.awt.event.ActionListener,java.awt.event.ItemListener{private final String[] uibuttext={"Up","Down","Up","Down","Up","Down","Up","Down","Open","Save"}private final String[] uibuttcommand={"REDUP","REDDOWN","GREENUP","GREENDOWN","BLUEUP","BLUEDOWN","WHITEUP","WHITEDOWN","OPENFILE","SAVAS"}private final java.awt.Color[] cols = {new Color(255,0,0),new Color(0,255,0),new Color(0,0,255),new Color(0,0,0),new Color(255,255,255)}//JCheckBoxchkwhtclbg//staticjava.util.IteratoriwrtRsstatic javax.imageio.ImageIO ioStreamSyscalls2 //INNERCLASSESCANNOTHAVESTATICDECLARATIONSstatic java.util.Iterator iwrtRs //INNERCLASSESCANNOTHAVESTATICDECLARATIONSRGBchangeCoeffLinear coloffl//RGBchangeCoeffContrastcoloffcRGBchangeCoeffLinearSingle coloffsRGBchangeCoeffLinearSingleHueSetter colHueRGBchangeCoeffLinearGammaSetter rgbSetgammHueBoard huQuickBoardColour qbrdFontTextBoard fontextbaud////JProgressBarwrkprog//WorkBarwrkPROGWorkWindowProgressor wrkprogessWorkBar workjava.awt.Image sw32ico//int alngPValjava.util.Timer tmObject wimg //WritImgOutJPEGWritImgOutPNGWritImgOutBMPFrame dialFramSplashframe splatter//JButton bwbttn//FchComp pfcJPanel pl//javax.swing.JSplitPane panesplitjavax.swing.JPanel labpanjava.awt.image.ImageObserver obsrvlabjavax.swing.JViewport[] panviewset //javax.swing.JPanel[] panset //javax.swing.JScrollPane[] panscro //javax.swing.JTextArea metaPneJButton[] colbuttJCheckBox thumboo,thumbleepDefaultComboBoxModel[] inpcombomodsetJComboBox[] inptnumsDefaultComboBoxModel szcombomodJComboBox joxint rsZidx //comboindexforresizeint oldrsZidxImageWriteParam wrtPrmJPanel toolpan,conslcntbttjava.io.FileOutputStream foutstrm//java.io.RandomAccessFilefoutstrm//java.io.Filefoutstrm//javax.imageio.stream.FileImageOutputStreamfoutstrmConvertToBandW bnwWritableRaster wrasMultiDimArr rgbDimArrRotators roTor //roTor=newRotators(bumi.getType())//ThreadReduxPriorthePRThreadRedux1 the1 //=newThreadRedux1()ThreadRedux2 the2ThreadRedux3 the3//ThreadRedux2theOther//=newThreadRedux2(e.getActionCommand())actComm=e.getActionCommand()String actCommString passPaneint imHint lenwshort[][] red_Overstepshort[][] green_Overstepshort[][] blue_Overstep//MULTIDIMINITSImageSysTest imcanvGraphics glong tme = 50ImWin tpnFont uifontJFileChooser flchsJFrame parentFile inputimageString curropendirString currsavdir//==errorfileiftheerrorhandlerhasaproblemFile errFil //errorfileinsu.datPrintStream pr //errorprintstramforstackTracemethodreadyString errFint buttonjump=1//

    JButton rdysz,mkrsz,quickclru,quickclrd,huebordJTextField lngz,wzd,hzd

    //JPanel[] bgbut//javax.imageio.ImageWriteriwRTjavax.imageio.IIOParamController imPrmCntString app_Classpath_PATH,app_PATH,wneibyte[] sysOSString flsepString linesepboolean firstopenedisboolean guiOpOccurring////thumbsizerpanelJFrame thmbFrmJPanel frmpanlJLabel settJComboBox settLongJButton setchoiceDefaultComboBoxModel thmszint szMkThmb////THUMBVIEWERJFrame thumbVIEWJScrollPane vwscrollJViewport cviewJPanel frmevwpnlJPanel compvwJLabel[] thmImgViewString thumbinf//JPanel contain,containR,containL,contButtRow,crpWHlab,crpWHfields,crpXYfields,crpXYlabJButton crpSet,crpClr,crpCrop,crpRccw,crpcw,crpRFror,crpRmror,crptxtJTextField widefield,heightfield,xfield,yfieldJLabel wideLab,heightLab,xfieldLab,yfieldLabjava.util.Locale AorialeComponentOrientation AcmpoDefaultComboBoxModel omodJComboBox crxboolean cropsysstate//BufferedImagecopybumi//GraphicsgGraphics ggRectangle rb//NESTEDREADERCLASSPARTSstatic ImageIO ioStreamSyscallsstatic java.util.Iterator imReaders //java.util.IteratorimReaders//javax.imageio.stream.ImageInputStream imgInpStrjavax.imageio.ImageReader readIMGjavax.imageio.ImageReadParam rdrPRMjavax.imageio.IIOImage iioiMIGBufferedImage bumiImage bumiSZpaint//javax.imageio.metadata.IIOMetadata imgIIOmtdajavax.imageio.metadata.IIOMetadata imgIIOmtdaRead//org.w3c.dom.Noderootnod//StringmtdaTreeString imgfilenameFile imgFilingFileInputStream flimstrm//http://www.oracle.com/technetwork/articles/javase/generics136597.htmljava.util.List imgThmbNl//int numThumb//String[] args/*"180flip.png","0blueminus.png","1blueplus.png","2cropclear.png","3cropdo.png","4cropset.png","5doresize.png","6gammapply.png","7gammatry.png","8greenminus.png","9greenplus.png","10hueboard.png","11longside.png","12mirror.png","13open.png","14quickboardminus.png","15quickboardplus.png","16redminus.png","17redplus.png","18rotateccw.png","19rotatecw.png","20saveas.png","21textboard.png","22textclear.png","23textry2.png","24textsize.png","25toblackandwhite.png","26whiteminus.png","27whiteplus.png"}28*/String icopathString icoextfinal String[] appicons = {"180flip","blueminus","blueplus","cropclear","cropdo","cropset","doresize","gammapply","gammatry","greenminus","greenplus","hueboard","longside","mirror","open","quickboardminus","quickboardplus","redminus","redplus","rotateccw","rotatecw","saveas","textboard","textclear","textry2","textsize","toblackandwhite","whiteminus","whiteplus"}Image[] appiconsIMG

    //CONSTRUCTORFOLLOWSSidewinderPhotoColourBalancer(String[] args){ //takesastringargfromdraganddroponiconlater//INSIDECONSTRUCTORthis.args=args//firstopenedis=falsecropsysstate=falseAoriale = (java.util.Locale)Locale.US //java.util.LocaleAorialeComponentOrientationAcmpoAcmpo = ComponentOrientation.getOrientation(Aoriale)setComponentOrientation(Acmpo)try{flsep=System.getProperty("file.separator")linesep=System.getProperty("line.separator")curropendir = System.getProperty("user.home")currsavdir = System.getProperty("user.home")sysOS=(System.getProperty("os.name")).getBytes("ISO88591")wnei = new String(sysOS,0,sysOS.length)app_Classpath_PATH=System.getProperty("java.class.path")//if((wnei.equals("WindowsXP"))||(wnei.equals("WindowsNT"))||(wnei.equals("Windows2000"))||(wnei.equals("Windows98"))||(wnei.equals("WindowsMe"))||(wnei.equals("Windows2003"))||(wnei.equals("Windows_NT"))||(wnei.equals("WindowsNT(unknown)"))||(wnei.equals("WindowsVista"))){app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf((flsep+"engine"))))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsep+"ico"+flsepicoext=".gif"applicationIconMaker()}else{app_PATH=""+app_Classpath_PATH.substring(0,((int)app_Classpath_PATH.lastIndexOf(flsep+"engine")))icopath=app_PATH+flsep+"dat"+flsep+"sidewinder5050icons"+flsepicoext=".png" //req.tobe.giftestonlyapplicationIconMaker()}}catch(java.io.UnsupportedEncodingException unspenc){

    }finally{}//==instantiateerrorhandlerfortheerrorhandler(doublestageifthefirstfails)

    try{errF=app_PATH+flsep+"dat"+flsep+"errTraceSidewinder.txt"errFil=new File(errF)pr=new PrintStream(((OutputStream)new FileOutputStream(errFil,true)))//==//eiyti.printStackTrace(pr)}catch(java.io.FileNotFoundException fifterr){System.out.println("ConstructorEXCEPTION:java.io.FileNotFoundException"+errF+"ErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}catch(java.lang.Exception excA){System.out.println("ConstructorEXCEPTION:java.lang.ExceptionErrorhandlersystemdownSidewinderPhotoColourBalancer.java")}finally{}

    try{String sw400pth = app_PATH+flsep+"dat"+flsep+"SidewinderA400.jpg"

    inputimage = new File(sw400pth)splatter = new Splashframe(sw400pth )uifont = ((Font)splatter.appfon) //,1,8)//(nopointing)originalwillsoonbeinanullclassimcanv = new ImageSysTest(inputimage) //GETSTHEIMAGE}catch(java.io.FileNotFoundException finotfn){finotfn.printStackTrace(pr)}catch(javax.imageio.IIOException imgioexc){imgioexc.printStackTrace(pr)}catch(java.io.IOException ioexconst){ioexconst.printStackTrace(pr)}catch(java.lang.Exception excafAS){stackExPasthru((Throwable)excafAS)}finally{}/*catch(java.io.IOExceptionioexconst){ioexconst.printStackTrace(pr)}*///rsZidx=0oldrsZidx=0//splatter.repaint(((long)newLong("10").longValue()))splatter.toFront()splatter.repaint()splatter.mssg="StartingSidewinder........"splatter.mssgPrs()//splatter.sidewindersplash.paintComponent(splatter.sidewindersplash.getGraphics())passPane=""bgbut = new JPanel[4] //WAS4NOW3bgbut[0] = new JPanel()bgbut[0].setPreferredSize(new Dimension(210,65))bgbut[0].setSize(new Dimension(210,65))bgbut[0].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[0].setBackground(new Color(255,0,0))bgbut[1] = new JPanel()bgbut[1].setPreferredSize(new Dimension(210,65))bgbut[1].setSize(new Dimension(210,65))bgbut[1].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[1].setBackground(new Color(0,255,0))bgbut[2] = new JPanel()bgbut[2].setPreferredSize(new Dimension(210,65))bgbut[2].setSize(new Dimension(210,65))bgbut[2].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[2].setBackground(new Color(0,0,255))bgbut[3] = new JPanel()bgbut[3].setPreferredSize(new Dimension(210,65))bgbut[3].setSize(new Dimension(210,65))bgbut[3].setLayout(new java.awt.FlowLayout(1,4,4))bgbut[3].setBackground(new Color(255,255,255))//createButt()deledsplatter.toFront()splatter.repaint()splatter.mssg="Sidewinder:LoadingListGUIParts........"splatter.mssgPrs()szcombomod = new javax.swing.DefaultComboBoxModel()szcombomod.addElement((Object)"1/1")szcombomod.addElement((Object)"3/4")szcombomod.addElement((Object)"2/3")szcombomod.addElement((Object)"1/2")szcombomod.addElement((Object)"5/12")szcombomod.addElement((Object)"1/3")szcombomod.addElement((Object)"1/4")szcombomod.addElement((Object)"1/5") //szcombomod.addElement((Object)"3/16") //szcombomod.addElement((Object)"1/6") //szcombomod.addElement((Object)"1/8")szcombomod.addElement((Object)"1/10")szcombomod.addElement((Object)"1/12")szcombomod.addElement((Object)"1/16")jox = new JComboBox(szcombomod)jox.addItemListener(this)inpcombomodset = new javax.swing.DefaultComboBoxModel[4]for(int ckco=0(ckcohz){longside=true}

    float coef=0float lngz = new Integer(lsdz).floatValue()float hiz = new Integer(hz).floatValue()float wiz = new Integer(wz).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//try{java.awt.Image bmiresiz = quickImg(wdin,hdin)BufferedImage bu = new BufferedImage(wdin,hdin,bumi.getType())Graphics gr=bu.getGraphics()gr.drawImage(bmiresiz,0,0,null)makeQuickBoard(bu,app_PATH,wdin,hdin,upordown)}catch(Exception exsxa){//System.out.println(exsxa.getMessage())exsxa.printStackTrace(pr)}finally{}}//enmeth

    void mcHue(){hu = new HueBoard(this) //WARNINGTESTPARAMETERSFEDONLY!!!!

    }//enmeth

    ////setValue()//repaint()

    void rotateCW(){work.makeParamWork(100) //swinder.bumi.getWidth()

    rotateSysClss() //newRotatorswork.setValue(10)work.repaint()//int bHI = bumi.getHeight()int bWI = bumi.getWidth()redCWRemake(bWI,bHI)//work.setValue(20)//work.repaint()//doGarbageClear()greenCWRemake(bWI,bHI)//work.setValue(30)//work.repaint()//doGarbageClear()blueCWRemake(bWI,bHI)//work.setValue(40)//work.repaint()//doGarbageClear()bmiMKrotate(bHI,bWI) //makesaCWrotatedbumi//work.setValue(50)//work.repaint()roTor = nullclearthumbL()doGarbageClear()//NOTICE(argumentsin!!!SP)FILLIN!!!MUSTBEDONEINHERErunthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//work.setValue(70)////work.repaint()//nowsetSizesetIconrepaint//!!!!!!TPNMUSTBERESET"IN"HEREtpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(bWI,bHI))tpn.repaint()//makeImgRsz(oldrsZidx)//work.setValue(100)//work.repaint()metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    void rotateCCW(){rotateSysClss() //newRotatorsint bHI = bumi.getHeight()int bWI = bumi.getWidth()redCCWRemake(bWI,bHI)doGarbageClear()greenCCWRemake(bWI,bHI)doGarbageClear()blueCCWRemake(bWI,bHI)doGarbageClear()bmiMKrotate(bHI,bWI) //"swapstoH,Winsidethecallerfunction"makesaCCWrotatedbumiroTor = nullclearthumbL()doGarbageClear()////runthetranslatorpopulatormethodnextrotationPopulator(bHI,bWI)//nowsetSizesetIconrepaint//tpn.setIcon(newImageIcon((java.awt.Image)bumi))//tpn.setSize(newDimension(bWI,bHI))//tpn.repaint()makeImgRsz(oldrsZidx)metaPne.append("===RotatedImage:==="+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)}//enmeth

    public void actionPerformed(java.awt.event.ActionEvent e){actionComm(((String)e.getActionCommand()))//if(guiOpOccurring==false){guiOpOccurPresent(true)//JOptionPane.showMessageDialog(newJFrame(),"command(listenermethodsection):"+((String)e.getActionCommand()))try{oldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()//if(((boolean)actComm.equals("OPENFILE"))){passPane=""chooseOpenFile()if(firstopenedis==true){disnableButtons(true) //}//tpn.repaint()

    guiOpOccurPresent(false)//}else{int btyP=bumi.getType()if(((int)btyP==5) || ((int)btyP==4) || ((int)btyP==1)){ //normalRGBtruecolouroldrSzIdx(jox.getSelectedIndex()) //isalwayskeptbeforeabyassignmenttorSzIdx()if(((boolean)actComm.equals("THBOO"))&&((thumbleep.isSelected())==true)){thumbleep.setSelected(false)}else if(((boolean)actComm.equals("THBLEEP"))&&((thumboo.isSelected())==true)){thumboo.setSelected(false)}else if((boolean)actComm.equals("BLACKUNDWAAAHT")){disnableButtons(true)refreshBWmake()bnw.makeBWimage()rotationPopulator(bumi.getWidth(),bumi.getHeight())makeImgRsz(oldrsZidx)metaPne.append("===SwitchedImageToB&W==="+linesep)doGarbageClear()

    //JOptionPane.showMessageDialog(newJFrame(),"APPARRENTSEQUENCEFINNISHED???")//}else if(((boolean)actComm.equals("READYBMI"))){int wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(hz>wz){lngz.setText(hzd.getText())}else{lngz.setText(wzd.getText())}guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("BMI"))){lngz.setEnabled(false) //onlylongsideboolean longside=falseint wz=bumi.getWidth()int hz=bumi.getHeight()wzd.setText(new Integer(wz).toString())hzd.setText(new Integer(hz).toString())if(wz>hz){longside=true}String aa=wzd.getText()String ab=hzd.getText()String ac=lngz.getText()//hzd.getText()//lngz.getText()boolean a1 = chKChr(aa)boolean a2 = chKChr(ab)boolean a3 = chKChr(ac)if((a1==true)&&(a2==true)&&(a3==true)){float coef=0float lngz = new Float(ac).floatValue()float hiz = new Float(ab).floatValue()float wiz = new Float(aa).floatValue()if(longside==true){ //"otherelse"istheheightcoef=lngz/wiz}else{//coef=lngz/hiz}float nht=coef*hizfloat nwd=coef*wizint wdin = (new Float(nwd).intValue())int hdin = (new Float(nht).intValue())//Image bmiresiz = bumi.getScaledInstance(wdin,hdin,4)bumi = new BufferedImage(wdin,hdin,bumi.getType())Graphics tr = bumi.getGraphics()tr.drawImage(bmiresiz,0,0,wdin,hdin,null)WritableRaster wras=bumi.getRaster()red_Overstep = rgbDimArr.colOverstepstore(0,hdin,wdin,wras)green_Overstep = rgbDimArr.colOverstepstore(1,hdin,wdin,wras)blue_Overstep = rgbDimArr.colOverstepstore(2,hdin,wdin,wras)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.setSize(new Dimension(wdin,hdin))doGarbageClear()//POPULATORANDMULTIDIMMARTORESETUPAFTERRESIZINGPROCEDURE//rotationPopulator(bumi.getWidth(),bumi.getHeight())oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)metaPne.append("===ResizeofImageDone(previousaspectratio)==="+linesep)metaPne.append("::NewWidth:"+wdin+""+linesep)metaPne.append("::NewHeight:"+hdin+""+linesep)//RESTOREVIEWTOTHEjoxVIEWSELECTIONSETTING}else{JOptionPane.showMessageDialog(new JFrame(),"Onlynumbertobeusedastextentries!!")}//DOGARBAGECOLLECTIONHERElngz.setEnabled(true) //onlylongside//REENABLEBUTTONSFORGUIHEREguiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SAVAS"))){chooseSaveAsFileLocation()guiOpOccurPresent(false)disnableButtons(true)}else if(((boolean)actComm.equals("SETTHUMBSZ"))){doSavesys() //"SETTHUMBSZ"isinthethumbimagelistenertrack}else if(((boolean)actComm.equals("SETCROP"))){if((cropsysstate==false)&&(((boolean)checkFieldCropval())==true)){doGarbageClear()//"setcrop"cropstater(true)oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)mkImCrpPaintSelect()doGarbageClear()}else{cropstater(false)JOptionPane.showMessageDialog(new JFrame(),"inputtypoerrorinatextentryfieldinputfieldvaluesmustbenumbers")}//enif

    disnableButtons(true)}else if(((boolean)actComm.equals("CLEARCROP"))){if(cropsysstate==true){tpn.cropIsOnflag(false)tpn.setIcon(new ImageIcon((java.awt.Image)bumi))tpn.repaint()rotationPopulator(bumi.getWidth(),bumi.getHeight())doGarbageClear()cropstater(false)//calltotpnforextraimagenulledandthendogarbagedoGarbageClear()}disnableButtons(true)}else if(((boolean)actComm.equals("DOCROP"))){if(cropsysstate==true){doGarbageClear()//if(checkFieldCropval()==true){ //!!!checkFieldCropval(excesscodethereareotherplaceshavethistestinternalbutishere//!!!topreventclasscastexceptionherecheckFieldCropval(int newide = new Integer(widefield.getText()).intValue()int newheight = new Integer(heightfield.getText()).intValue()doGarbageClear()rotateSysClss() //newRotatorsbmiMKrotate(newide,newheight) //roTor = nulldoGarbageClear()int topLpnt = new Integer(xfield.getText()).intValue()int topRpnt = new Integer(yfield.getText()).intValue()//makethenewmodifiedarraysfromtheoriginaloverstepsredCropRemake(topLpnt,topRpnt,newide,newheight)greenCropRemake(topLpnt,topRpnt,newide,newheight)blueCropRemake(topLpnt,topRpnt,newide,newheight)rotationPopulator(bumi.getWidth(),bumi.getHeight())/*TODOSETUPCOMPLETEREASSIGNINGOFiioIMAGEOBJECTSE.T.C.FORWRITEANDREFERENCESONbumi*/tpn.setSize(new Dimension(newide,newheight))tpn.setIcon(new ImageIcon(((Image)bumi)))tpn.repaint()oldrSzIdx(0) //isalwayskeptbeforeabyassignmenttorSzIdx()makeImgRsz(0)jox.setSelectedIndex(0)tpn.repaint()clearthumbL()//Stringcrppa=metaPne.getText()//metaPne.setText(crppa)String msgcrpping ="CropDone:Xpos:"+xfield.getText()+"::Ypos:"+ yfield.getText()+"::Width:"+ widefield.getText()+"::Height:"+heightfield.getText()metaPne.append("===CroppedImage:==="+linesep)metaPne.append(msgcrpping+linesep)metaPne.append("===width:"+bumi.getWidth()+linesep)metaPne.append("===height:"+bumi.getHeight()+linesep)metaPne.append("===note:anypreviousthumnailsarecleared"+linesep)//note:iioimagekeptformetadata}//enifcropstater(false)doGarbageClear()}//enifdisnableButtons(true)}else if(((boolean)actComm.equals("TEXTING"))){if(tpn.getTextFlag()==false){//stopdoublepanes//BOOLEANREQUIREDHERETOSWITCHOFFImWinselectionfontextbaud = new FontTextBoard(this)//metapaneappendisdonefromtextboardclass}disnableButtons(true)}else{//===================COMPOUNDEDthe1 = new ThreadRedux1()the1.start()//===================COMPOUNDED

    }//enlistenifels

    }//enelseforIMAGERESTRAINTS

    //}//enelseforopen

    //}catch(java.lang.IllegalThreadStateException thrupt1){stackExPasthru((Throwable)thrupt1)}catch(java.lang.Exception irexc1){stackExPasthru((Throwable)irexc1)}finally{}//guiOpOccurPresent(false)//if(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()

    if(cropsysstate==true){//disnableButtons(false)crpRccw.setEnabled(false)crpcw.setEnabled(false)//!!!DONOTputguiOpOccurPresent(inhereif(oldrsZidx!=rsZidx){makeImgRsz(rsZidx)}else{makeImgRsz(oldrsZidx)}tpn.repaint()}else{crpRccw.setEnabled(true)crpcw.setEnabled(true)if(the1!=null){the1 = null}else{disLowerButs(true)}//eninnerifelsint bHI = bumi.getHeight()int bWI = bumi.getWidth()rotationPopulator(bWI,bHI)}//enifelsdoGarbageClear()}//enifguioccurend

    }//eneventmeth

    void rotationPopulator(int bumw,int bumhi){ //argsmaybereplacedWritableRaster bumras = bumi.getRaster()int caccr = 0//System.out.println("hibum:"+hibum+"wibum"+wibum+"bumw"+bumw+"bumhi"+bumhi)while(caccr

  • /*THISistheF2Versionsomewherenearcompletedforrelease.Theoldsitewashttp://www.nicephotogjsp.netthenewsiteishttp://www.windsolarhybridaustralia.x10.mxThisapplicationisnotprincipleywritteninLinuxorWindowsandissometimesperversiononlyusableinoneortheotherOSsystem.ItisendevouredtobewrittenforbothandallWindowsandNIX'sOS'sintheonedownload...cdC:\SideWinderColourBalancer\engineFILENAMESHOULDBE"SideWinderPhotoColourBalancer.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober20102015versionF2cdC:\SideWinderColourBalancer\engine\sidewinderutil"MultiDimArr.java"writtenbyMrSamuelAMarchantSydneyNSWAustraliaOctober2010"C:\ProgramFiles\Java\jdk1.5.0_07\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.5.0_07\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer"C:\ProgramFiles\Java\jdk1.6.0_22\bin\javac.exe"SidewinderPhotoColourBalancer.java"C:\ProgramFiles\Java\jdk1.6.0_22\bin\java.exe"classpath"C:\SideWinderColourBalancer\engine".SidewinderPhotoColourBalancer*/import java.awt.*import java.awt.event.ActionListenerimport java.awt.event.ActionEventimport java.awt.Dimensionimport java.awt.image.*import javax.swing.event.*import java.awt.event.ItemEventimport java.awt.event.WindowAdapterimport java.awt.event.WindowEventimport javax.swing.*import javax.swing.filechooser.FileFilter//importjavax.swing.filechooser.FileNameExtensionFilterimport java.io.*import javax.imageio.*import javax.imageio.spi.*import javax.imageio.stream.*import javax.imageio.metadata.*//import java.util.*import java.util.Listimport java.util.Iterator//importsidewinderutil.*//importsidewinderutil.MultiDimArr//importsidewinderutil.Rotators//importsidewinderutil.Cropcoords//importsidewinderutil.IMGextensions//importsidewinderutil.FlipInvert//import java.awt.font.*import java.awt.geom.*import java.awt.FontMetricsimport java.awt.font.LineMetricsimport java.awt.GraphicsEnvironment//class SidewinderPhotoColourBalancer extends javax.swing.JFrame implements java.awt.event.ActionListener,java.awt.event.ItemListener{private final String[] uibuttext={"Up","Down","Up","Down","Up","Down","Up","Down","Open","Save"}private final String[] uibuttcommand={"REDUP","REDDOWN","GREENUP","GREENDOWN","BLUEUP","BLUEDOWN","WHITEUP","WHITEDOWN","OPENFILE","SAVAS"}private final java.awt.Color[] cols = {new Color(255,0,0),new Color(0,255,0),new Color(0,0,255),new Color(0,0,0),new Color(255,255,255)}//JCheckBoxchkwhtclbg//staticjava.util.IteratoriwrtRsstatic javax.imageio.ImageIO ioStreamSyscalls2 //INNERCLASSESCANNOTHAVESTATICDECLARATIONSstatic java.util.Iterator iwr


Top Related