PK z6Kĸ00META-INF/MANIFEST.MFManifest-Version: 1.0 Main-Class: Halftoner PK [6n[ [ Grayscale.class.{ V W X Y Z [\ ] [^ [_E `a b [c d [e `f `g `h> l?E=x ij `klm savedWidthI savedHeight savedPixels[I defaultCMLjava/awt/image/ColorModel;()VCodeLineNumberTableLocalVariableTablethis LGrayscale; setDimensions(II)Vwidthheight setColorModel(Ljava/awt/image/ColorModel;)VmodelsetHints(I)V hintflags setThePixels6(IIIILjava/awt/image/ColorModel;Ljava/lang/Object;II)VxxyyxycmpixelsLjava/lang/Object;offsetscansize sourceOffsetdestinationOffset bytearrayZ setPixels&(IIIILjava/awt/image/ColorModel;[BII)V[B&(IIIILjava/awt/image/ColorModel;[III)V imageCompletepixvalstartpositionstatusgrayVal(I)IredFgreenblue tempPixel SourceFileGrayscale.java #$    nop *+ !" ./ 12q rM 45 G2 LM CF sM tM uMv wx yz Grayscalejava/awt/image/ImageFilterconsumerLjava/awt/image/ImageConsumer;java/awt/image/ImageConsumerjava/awt/image/ColorModelgetRGBgetRedgetGreengetBluejava/lang/Mathround(F)I getRGBdefault()Ljava/awt/image/ColorModel;! !" #$%3*& O' ()*+%m***h *&    ' (),-./%E *&  ' () 0"12%I*~ & '()345%k6 *h`6  6 6  r6  O '*   3~ O *   . O  d`6  *d`6 &6  (!-"Q$n t%}&('"R6 v7 ()89,-:";<=>? @ zAB CD% * & ,-'\ ()89,-:";E=>CF% * & 12'\ ()89,-:"; =>G2%0 ** M6*X>*h66*!*`.6,*O**,* *&>5 679;(<*=3>??K@W>]Bw;}DF'RKH6'63DI*SJ^7k; ()KLM%DEF8$j%jbjb6xxx&I JKL0M'>D()DH ;NO2PO(QO0RS$%&TUPK 8h6b~Q33Halftone.class. 4 3 3@@@ 3@@@ 3 3  3 3 3 3 3 3 3 3 3  3   Y 3  3 3 [ 3 3 3 3 3@_ 3 @o  3 3@H@E@0 3 3@"@@$@*@,@(@2@.@&@1@3@<@;@8@5@=@@@:@4@>@?@9@7@6@P@M@I@D@C@H@L@O@P@@Q@S@V@@V@T@R@P@M@A@@@L@Q@W@Y@[@\@Y@X@R@@I@S@Y@@\@_@^@^@Z@T@@D@C@V@[@]@@_@@`@^@Z@@V@B@U@[@@]@_@_@^@@Z@W@J@G@S@@Y@\@@]@]@\@X@@T@N@A@B@K@Q@@W@X@[@Z@X@W@@R@N@J@F@E@F@G@K@O@Q@S@U@U@U@@T@R@P@`  NUM_OF_METHODSI ConstantValue RANDOM_DITHERCLASSICAL_SCREENDISPERSED_SCREENERROR_DIFFUSION SERPENTINE_EDFLOYDJARVISSTUCKI CLASS45_M3 CLASS45_M4 CLASS45_M8CLASSICAL_ZERO SPIRAL_DOT LINE_SCREEN DISPERSED_1 DISPERSED_2 DISPERSED_3 DISPERSED_4 DISPERSED_5 DISPERSED_6 DISPERSED_7 DISPERSED_8methodvarietyfiltered[Iorig[[DfilterYfilterX errorFilter jarvisFilter stuckiFilter floydFilter theScreen screenSizerandLjava/util/Random; savedWidth savedHeight savedPixels defaultCMLjava/awt/image/ColorModel;(II)VCodeLineNumberTableLocalVariableTablethis LHalftone;methtype setDimensionswidthheight setColorModel(Ljava/awt/image/ColorModel;)VmodelsetHints(I)V hintflags setThePixels6(IIIILjava/awt/image/ColorModel;Ljava/lang/Object;II)VxxyyxycmpixelsLjava/lang/Object;offsetscansize sourceOffsetdestinationOffset bytearrayZ setPixels&(IIIILjava/awt/image/ColorModel;[BII)V[B&(IIIILjava/awt/image/ColorModel;[III)V imageCompletestatusfilter()Vindex tempPixelnewPixel errorDiffuse(II)IijxLocyLocvalueerrorDerrorDiffuseBackwards randomDithergrayr doScreeningsetErrorFiltertotal setScreensetClassicalScreenm3m4m8class0 spiralDot lineScreen numGrayLevelssetDispersedScreenn1n2n3n4n5n6n7n8 SourceFile Halftone.java k \6 ]6[D _[ `[ a[java/util/Random de V6 W6   f6 g6 hY  tl ij wx z{  }~ {  XY  Z[     ^[   b[ c6    Halftonejava/awt/image/ImageFilterconsumerLjava/awt/image/ImageConsumer;java/awt/image/ImageConsumerjava/awt/image/ColorModelgetRGB(I)I nextGaussian()Djava/lang/Mathsqrt(D)Dpow(DD)D getRGBdefault()Ljava/awt/image/ColorModel;!34(5678967:;67<=67>?67@A67BC67:D67<E67>F67:G67<H67>I67@J67BK678L67:M67<N67>O67@P67BQ678R67ST67UV6W6XYZ[\6]6^[_[`[a[b[c6def6g6hY ijklm ****YYRYRYRSYYRYRYRSYYRY RYRSYY RYRYRSYYRYRYRS *YYRY RYRSYYRYRY RSYYRYRYRSYYRYRY RSYYRY RYRS*YYRYRYRSYYRYRYRSYYRYRYRSYY RYRYRSYYRYRYRS*Y****n2 :$ %(+.b4m;r<w={>?o pqr6s6tlmm***h *nBC DEFo pqu6v6wxmE * !n J Ko pq yjz{mI*~"n ORopq|6}~mk6 *h`6 #6 6  r6  O '* ## 3~$O * %% .$O  d`6  *d`6 n6 WXYZ[(\-]Q`n[tb}cZeo"R6 v6 pq66u6v6j666 6 z m *&n jko\ pq66u6v6j66m *&n pqo\ pq66u6v6jY66{m C*'*(*** *)** *'nt uvxy8{B}oCpqC6mq***+,***h )<*5=*%*h`>*,2*.~Rل*<*x=*h>*:)33*->*.> */>xx6*)*h`0O<*=*/*->xx6*)*h`0O`*>*d=3*`1>xx6*)`*h`0Oτzn%)3<OU[cmwy %/:CPdjpo<6+*6!:6y]66om6e}66 646C!6P66466qpqm* *,212 >*,21g96X`6*C69`6  ( **, 2\1*4`21kcRDŽn2 $-3<FLZv|o\ L*6 @<63I6'[6pq66m6$`m* *,212 >*,21g96X`6*C69d6  ( **, 2\1*4`21kcRDŽn2 $-3<FLZv|o\ L*6 @<63I6'[6pq66m6$`m;*,21J*5)6)gk8k9*,21c2 6n 8o>;pq;6;6 286mt(*,21*9*:p2*:p1 >n &o*(pq(6(6&6m* *|H*88)** 4;H**4=H**4?H>*(6**42\1'oRֱnF08<?GKNVZdp}o*g6\-6wpqmV* *A**Bn  o pqm YYCRYERYRYGRYIRYKRSYY RYRYRYMRYORYQRSYYRY RYRYSRYURY?RSYYGRYIRYKRYCRYERYRSYYMRYORYQRY RYRYRSYYSRYURY?RYRY RYRSLYYKRYRYERYCRYWRYYRY[RY]RSYYMRYRYRY RY_RYaRYcRYeRSYYIRYRY RYRYgRYiRYkRYmRSYY?RYGRYSRYQRYURYoRYqRYORSYYWRYYRY[RY]RYKRYRYERYCRSYY_RYaRYcRYeRYMRYRYRY RSYYgRYiRYkRYmRYIRYRY RYRSYYURYoRYqRYORY?RYGRYSRYQRSMYYsRYuRYwRYyRY{RY}RYRYRYRY RY RY RY RY RYRYRSYYRYRY[RYORYURYeRYRYRYRY RY RY RY RY RYRYRSYYRYYRYKRYRYERYCRYmRY;RYRY RY RY RY RY RYRYRSYYRYWRYMRYRYRY RY]RYRYRY RY RY RY RY RYRYRSYY=RYgRYIRYRY RYRYoRYRYRY RY RY RY RY RYRYRSYYRYaRY?RYGRYSRYQRYcRYRYRY RY RY RY RY RYRYRSYYRYRYiRY_RYqRYkRYRYRYRY RY RY RY RY  RY RY RSYYRYRYRYRYRYRYRYRYRY !RY #RY %RY 'RY )RY+RY-RSYYRYRYRYRYRYRYRYRYsRY uRY wRY yRY {RY }RYRYRSY YRYRYRYRYRYRYRYRYRY RY [RY ORY URY eRYRYRSY YRYRYRYRYRYRYRYRYRY YRY KRY RY ERY CRYmRY;RSY YRYRYRYRYRYRYRYRYRY WRY MRY RY RY  RY]RYRSY YRYRYRYRYRYRYRYRY=RY gRY IRY RY  RY RYoRYRSY YRYRYRYRYRYRYRYRYRY aRY ?RY GRY SRY QRYcRYRSYYRYRYRYRYRY RY RY RYRY RY iRY _RY qRY kRYRYRSYYRY!RY#RY%RY'RY)RY+RY-RYRY RY RY RY RY RYRYRSNYYRYaRYKRYIRYYRYRSYYiRYQRYCRYRYRY[RSYYORYGRYRYRYRYMRSYYqRYURYERY RY RYoRSYYkRY_RY?RYSRY]RYeRSYYRYcRYgRYWRYmRYRS:YY_RYgRYWRYORYURSYYqRY RYERYRY?RSYYoRYRYRYRYQRSYY]RYCRY RYRYKRSYYmRYGRYSRYMRYIRS:YYRY]RYMRYERYORYiRSYYRYqRYGRYRY?RYYRSYYcRYgRYRY RYKRYeRSYYkRYWRY RYRYIRYmRSYYRY_RYCRYRYQRY[RSYYRYoRYSRYRYURYaRS:9*':Mat*,99*:a*-9/9*:N*99*::*9e9*:'*99*:*+9W9*:6  *::6  *:(*9 2 \1oR*9 2 \16kR Մ ñn&  , 0 4 : ; = > ? @ B C D E G H I J L M %N *O -Q 3R 8S >T AW FX KY Q] ]^ i_ x` ^ ] cof `.6 T@6 pq [ [ [ [ [ [ m YYRY RSYY RYRSLYY RYRSYYRYRSMYYRYRY RYERSYYRYRY RYRSYY RYERYRYRSYY RYRYRYRSNYY RYGRYRYMRSYY?RYERYKRYRSYYRYSRYRYCRSYYIRY RYQRYRS:YYRYURYRY_RY RYORYERYqRSYYiRYCRYmRYIRYaRYGRYeRYKRSYYRY]RYRYWRY RYoRYRYgRSYYYRY?RYcRYSRY[RYQRYkRYMRSYY RYORYERYqRYRYURYRY_RSYYaRYGRYeRYKRYiRYCRYmRYIRSYY RYoRYRYgRYRY]RYRYWRSYY[RYQRYkRYMRYYRY?RYcRYSRS:YY RYRYGRY=RYRYRYMRYRSYYRYORYwRYeRYuRYgRYRYYRSYY?RY;RYERYRYKRYRYRYyRSYYRYcRYsRYqRYRYiRYRY]RSYYRYRYSRYRYRYRYCRYRSYYRYWRYRY[RYRYURY}RYmRSYYIRYRY RY{RYQRYRYRYRSYYRYaRYRYoRYRYkRYRY_RS:+:+: *`1c9 * *`l1:*kkc[RI@7.*9<*93*9**9!*9*-9*,9*+96  *::6  *:(*9 2 \1 oR*9 2 \16kR Մ ñn!f%hLjlAou{|~@FIORX[adjmruz}oz .6 @6 pq%[Lz[[A[[[[[ m2 n8PK n6zHalftoneImage.class.% _ ^ ^ ^ ^ ^  ^  ^  ^  ^ ^ ^ ^ ^ ^ ^ ^ ^ " ^ ^ & ( ^ ( ( ( ( ( 1 ( ( & ^  9 ^ ; ^ ^ ^  \DEFAULT_METHODI ConstantValueimageLjava/awt/Image;halftonedImage rightImage leftImage leftImageCan LImageCanvas; rightImageCanimWidthimHeightcurrentImageNum imageSourceLjava/lang/String; imageChangedZ varietyLabelLjavax/swing/JLabel; methodLabel imageLabelleftImageMethodrightImageMethodleftImageVarietyrightImageVarietyleftImageButtonLjavax/swing/JButton;rightImageButtonorigLImageButtonorigRImageButton()VCodeLineNumberTableLocalVariableTablethisLHalftoneImage;gridbagLjava/awt/GridBagLayout;cLjava/awt/GridBagConstraints; contentPaneLjava/awt/Container; filterImage()Ljava/awt/Image;methodvariety imageNumber halftoner LHalftone; getMethodText(I)Ljava/lang/String;numstrgetCaptionTextgetVarietyText(II)Ljava/lang/String; methodNum varietyNumgetMethodVariety$(Ljava/lang/String;)Ljava/awt/Point;mvTestvm menuCommand methodVarietyLjava/awt/Point; SourceFileHalftoneImage.java la ma na qr Image Halftoner, by Mark Schulze javax/swing/JLabel stFilter variety:  utHalftoning method: Image label  vtjavax/swing/JButtonOriginal to Left Image ~|Original to Right Image |Halftone to Left Image {|Halftone to Right Image }| wt xtOriginal Image yt zt ImageCanvas ij kjjava/awt/GridBagLayoutjava/awt/GridBagConstraints     a  a  a a ajava/awt/Insets   a    Halftone "java/awt/image/FilteredImageSource de    ! feError Diffusion!Serpentine Raster Error DiffusionClustered Dot Ordered DitherDispersed Dot Ordered DitherRandom Dither (white noise)captionFloyd and SteinbergJarvis, Judice, and NinkeStucki Floyd and Steinberg (Serpentine)'Jarvis, Judice, and Ninke (Serpentine)Stucki (Serpentine)(Classical Screen at 45°, 3x6 (19 grays)(Classical Screen at 45°, 4x8 (33 grays)*Classical Screen at 45°, 8x16 (129 grays)'Classical Screen at 0°, 6x6 (37 grays)!Spiral-Dot Screen, 5x5 (26 grays)Line Screen, 6x6 (37 grays) Order η = 1 Order η = 2 Order η = 3 Order η = 4 Order η = 5 Order η = 6 " #$java/awt/Point HalftoneImagejavax/swing/JFramesetTitle(Ljava/lang/String;)VsetTextgetContentPane()Ljava/awt/Container;java/awt/Container setLayout(Ljava/awt/LayoutManager;)V gridwidth gridheightgridxgridyfill(IIII)VinsetsLjava/awt/Insets;anchorsetConstraints4(Ljava/awt/Component;Ljava/awt/GridBagConstraints;)Vadd*(Ljava/awt/Component;)Ljava/awt/Component;validate setEnabled(Z)V(II)Vjava/awt/Image getSource ()Ljava/awt/image/ImageProducer;=(Ljava/awt/image/ImageProducer;Ljava/awt/image/ImageFilter;)V createImage0(Ljava/awt/image/ImageProducer;)Ljava/awt/Image;java/lang/Stringequals(Ljava/lang/Object;)Z!^_`abcdefegeheijkjlamanaopqrstutvtwtxtytzt{|}|~||**,*,****Y *  *Y *  *Y*Y*Y*Y*Y*Y***Y***Y *Y !*"Y#$*"Y#%&Y'L(Y)M**N-++,,,-,.,/,0,1Y23, 4+*,5,.,4,/,., 4,0+* ,5,.,4,/,., 4+* ,5,.,4,/,., 4+*,5,.+*,5,/,.+*,5,.+*,5,1Y    23,0,.,/,,+*$,5,.+*%,5,1Y23,/,.,0+*,5,.+*,5,/,.,0+* ,5,.+*!,5-*6W-* 6W-* 6W-*6W-*6W-*6W-*6W-*$6W-*%6W-*6W-*6W-* 6W-*!6W*7*7~_!""$-%69A:J<W>d?q@~ACDFGIJMNOPRSTU VW!X'Y0Z5[;^@_E`KaPbYc^ddgihnitj}klqrstuvwxyz{}~$).7<EKPU^clu~*n<=>*8*8*8*89Y::**;Y*<=>?@*8*8*8*8*@:&1IQYai4nlajaha1=EAL?<06$*BLCLDL ELFL+2 (+.147:=@CEaBpGGM,  apAM~$R*!'HM IMJM(%KM LMMMF%+17=CNMOMPMQM RMSMOH'-39?ETMUMVMWM XMYM,+(DGJMPS V psvy| "#%&()+.0235689; < >?AFK aapQL=;>&Z:*[\Y]L + + \Y]L+:OP QRS!T+U.Q4X8Y;PA]E^O`4p )a=aQpOPK r6j) Halftoner.class.V + ,- + . / 01 02 3 45 46 7 8 9: 9;< => +? packFrameZ()VCodeLineNumberTableLocalVariableTablethis LHalftoner;frame LMainFrame; screenSizeLjava/awt/Dimension; frameSizemain([Ljava/lang/String;)VeLjava/lang/Exception;args[Ljava/lang/String; SourceFileHalftoner.java   MainFrame @ AB CD EF GFH IJ KJ LM NOP QR STjava/lang/Exception U Halftonerjava/lang/Objectpackvalidatejava/awt/ToolkitgetDefaultToolkit()Ljava/awt/Toolkit; getScreenSize()Ljava/awt/Dimension;getSizejava/awt/DimensionheightIwidth setLocation(II)V setVisible(Z)Vjavax/swing/UIManagergetSystemLookAndFeelClassName()Ljava/lang/String;setLookAndFeel(Ljava/lang/String;)VprintStackTrace!u**YL* ++M+ N- , -, - , -, +, - dl, - dl + B #*/: B"M#U%o&t'*ud*K !/F"! #$gL+YW ,0 . /12 %&'()*PK V6()VCodeLineNumberTableLocalVariableTablethis LImageCanvas;(Ljava/awt/Image;)VimggetPreferredSize()Ljava/awt/Dimension;getMinimumSizenewImagepaintComponent(Ljava/awt/Graphics;)VgLjava/awt/Graphics; SourceFileImageCanvas.java java/awt/Dimension =  >? $ #" @ AB  CB  DE FG ImageCanvasjavax/swing/JPanel(II)VsetSize(Ljava/awt/Dimension;)Vjava/awt/ImagegetWidth!(Ljava/awt/image/ImageObserver;)I getHeightrepaintjava/awt/Graphics drawImage5(Ljava/awt/Image;IIIILjava/awt/image/ImageObserver;)Z!T**Y,,**     F **+   !"/* #"/* $=*+*** *** *Y* * *** 0 8!<"== %&M+** * *W %&'()*PK z6*؈'MainFrame$MainFrame_FocusListener.class.!   this$0 LMainFrame; Synthetic(LMainFrame;)VCodeLineNumberTableLocalVariableTablethisMainFrame_FocusListener InnerClasses#LMainFrame$MainFrame_FocusListener; focusGained(Ljava/awt/event/FocusEvent;)VfeLjava/awt/event/FocusEvent; SourceFileMainFrame.java   !MainFrame$MainFrame_FocusListenerjava/awt/event/FocusAdapter()V MainFramerepaint   8 **+    @*   PK z6*^""5MainFrame$MainFrame_jMenuFileExit_ActionAdapter.class.&     !"adaptee LMainFrame;this$0 Synthetic(LMainFrame;LMainFrame;)VCodeLineNumberTableLocalVariableTablethis%MainFrame_jMenuFileExit_ActionAdapter InnerClasses1LMainFrame$MainFrame_jMenuFileExit_ActionAdapter;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileMainFrame.java #  $ %/MainFrame$MainFrame_jMenuFileExit_ActionAdapterjava/lang/Objectjava/awt/event/ActionListener()V MainFramejMenuFileExit_actionPerformed     K**+*,  A *+     PK z6co6""5MainFrame$MainFrame_jMenuFileOpen_ActionAdapter.class.&     !"adaptee LMainFrame;this$0 Synthetic(LMainFrame;LMainFrame;)VCodeLineNumberTableLocalVariableTablethis%MainFrame_jMenuFileOpen_ActionAdapter InnerClasses1LMainFrame$MainFrame_jMenuFileOpen_ActionAdapter;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileMainFrame.java #  $ %/MainFrame$MainFrame_jMenuFileOpen_ActionAdapterjava/lang/Objectjava/awt/event/ActionListener()V MainFramejMenuFileOpen_actionPerformed     K**+*,  A *+    PK z6 ""5MainFrame$MainFrame_jMenuFileSave_ActionAdapter.class.&     !"adaptee LMainFrame;this$0 Synthetic(LMainFrame;LMainFrame;)VCodeLineNumberTableLocalVariableTablethis%MainFrame_jMenuFileSave_ActionAdapter InnerClasses1LMainFrame$MainFrame_jMenuFileSave_ActionAdapter;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileMainFrame.java #  $ %/MainFrame$MainFrame_jMenuFileSave_ActionAdapterjava/lang/Objectjava/awt/event/ActionListener()V MainFramejMenuFileSave_actionPerformed     K**+*,  A *+    PK z6 ""5MainFrame$MainFrame_jMenuHalftone_ActionAdapter.class.&     !"adaptee LMainFrame;this$0 Synthetic(LMainFrame;LMainFrame;)VCodeLineNumberTableLocalVariableTablethis%MainFrame_jMenuHalftone_ActionAdapter InnerClasses1LMainFrame$MainFrame_jMenuHalftone_ActionAdapter;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileMainFrame.java #  $ %/MainFrame$MainFrame_jMenuHalftone_ActionAdapterjava/lang/Objectjava/awt/event/ActionListener()V MainFramejMenuHalftone_actionPerformed     K**+*,& '( A *+ +,   PK z6(2&&6MainFrame$MainFrame_jMenuHelpAbout_ActionAdapter.class.&     !"adaptee LMainFrame;this$0 Synthetic(LMainFrame;LMainFrame;)VCodeLineNumberTableLocalVariableTablethis&MainFrame_jMenuHelpAbout_ActionAdapter InnerClasses2LMainFrame$MainFrame_jMenuHelpAbout_ActionAdapter;actionPerformed(Ljava/awt/event/ActionEvent;)VeLjava/awt/event/ActionEvent; SourceFileMainFrame.java #  $ %0MainFrame$MainFrame_jMenuHelpAbout_ActionAdapterjava/lang/Objectjava/awt/event/ActionListener()V MainFramejMenuHelpAbout_actionPerformed     K**+*,3 45 A *+ 89   PK z6Rɣ''MainFrame.class.:       !  "#  $ % & ' ( )*  + , -. / 0@ 1 23 !4 56 78 9: ; 5< => +? @ AB CD 1E FG HI JK J LM NO <P QR ST APUV DPWX GP YZ  Y[ \]  ^_`a QP b c de /fg W hi Z Zj /klm ^n ^o ^pq d rs tuv hw hx !y hy z{| o} ~ q  W W w w  r t  YW   E     1 1           ~ ~        8&MainFrame_jMenuHelpAbout_ActionAdapter InnerClasses%MainFrame_jMenuHalftone_ActionAdapter%MainFrame_jMenuFileExit_ActionAdapter%MainFrame_jMenuFileSave_ActionAdapter%MainFrame_jMenuFileOpen_ActionAdapterMainFrame_FocusListener application LMainFrame; contentPaneLjavax/swing/JPanel; jMenuBar1Ljavax/swing/JMenuBar; jMenuFileLjavax/swing/JMenu; jMenuFileOpenLjavax/swing/JMenuItem; jMenuFileSave jMenuFileExit jMenuHalftone jMenuHelpjMenuHelpAbout borderLayout1Ljava/awt/BorderLayout;imageLjava/awt/Image;htImage imageNameLjava/lang/String; imagePanel LImageCanvas;class$MainFrameLjava/lang/Class; Synthetic()VCodeLineNumberTableLocalVariableTableeLjava/lang/Exception;thisjbInit varMenuItemrandomDitherItem methodMenuvarStrvidxIidxiconhalftoneListener1LMainFrame$MainFrame_jMenuHalftone_ActionAdapter; scrollpaneLjavax/swing/JScrollPane; ExceptionsjMenuFileOpen_actionPerformed(Ljava/awt/event/ActionEvent;)VexcfLjava/io/File; grayscaler LGrayscale;gsImageLjava/awt/event/ActionEvent;od LOpenDialog;imgPathjMenuFileSave_actionPerformedsd LSaveDialog;saveFilejMenuFileExit_actionPerformedjMenuHalftone_actionPerformed methodVarietyLjava/awt/Point; halftoner LHalftone;jMenuHelpAbout_actionPerformeddlgLMainFrame_AboutBox;dlgSizeLjava/awt/Dimension;frmSizeloctoBufferedImage0(Ljava/awt/Image;)Ljava/awt/image/BufferedImage; transparencygsLjava/awt/GraphicsDevice;gc Ljava/awt/GraphicsConfiguration;Ljava/awt/HeadlessException;typehasAlphaZbimageLjava/awt/image/BufferedImage;geLjava/awt/GraphicsEnvironment;gLjava/awt/Graphics;processWindowEvent(Ljava/awt/event/WindowEvent;)VLjava/awt/event/WindowEvent;class$%(Ljava/lang/String;)Ljava/lang/Class;x1"Ljava/lang/ClassNotFoundException;x0 SourceFileMainFrame.java  java/lang/ClassNotFoundExceptionjava/lang/NoClassDefFoundError   javax/swing/JMenuBar javax/swing/JMenu javax/swing/JMenuItem java/awt/BorderLayout   java/lang/Exception    MainFrame  hticon.png   !MainFrame$MainFrame_FocusListener   javax/swing/JPanel java/awt/Dimension   Halftoner File Open...  /MainFrame$MainFrame_jMenuFileOpen_ActionAdapter  Save... /MainFrame$MainFrame_jMenuFileSave_ActionAdapterExit/MainFrame$MainFrame_jMenuFileExit_ActionAdapterHalftone/MainFrame$MainFrame_jMenuHalftone_ActionAdapter    HelpAbout0MainFrame$MainFrame_jMenuHelpAbout_ActionAdapter     ImageCanvas javax/swing/JScrollPane   OpenDialog Open Image    java/io/File  java/lang/StringBufferError occurred during reading:    Grayscale"java/awt/image/FilteredImageSource      SaveDialog Save Image.png   PNG   Error occurred during writing:       MainFrame_AboutBox           java/awt/image/BufferedImagejavax/swing/ImageIcon  !" #$ %&' () *+ ,+- ./java/awt/HeadlessException 0 123 45 6  7 89 javax/swing/JFramejava/lang/ClassforName getMessage()Ljava/lang/String;(Ljava/lang/String;)V enableEvents(J)VprintStackTracejava/awt/ToolkitgetDefaultToolkit()Ljava/awt/Toolkit; getResource"(Ljava/lang/String;)Ljava/net/URL;getImage (Ljava/net/URL;)Ljava/awt/Image; setIconImage(Ljava/awt/Image;)V(LMainFrame;)VaddFocusListener!(Ljava/awt/event/FocusListener;)VgetContentPane()Ljava/awt/Container;(II)VsetSize(Ljava/awt/Dimension;)VsetTitlesetTextjavax/swing/KeyStroke getKeyStroke(II)Ljavax/swing/KeyStroke;setAccelerator(Ljavax/swing/KeyStroke;)V(LMainFrame;LMainFrame;)VaddActionListener"(Ljava/awt/event/ActionListener;)V setEnabled(Z)V HalftoneImage getMethodText(I)Ljava/lang/String;getVarietyText(II)Ljava/lang/String;java/lang/Stringequals(Ljava/lang/Object;)Zadd0(Ljavax/swing/JMenuItem;)Ljavax/swing/JMenuItem;((Ljavax/swing/JMenu;)Ljavax/swing/JMenu; setJMenuBar(Ljavax/swing/JMenuBar;)Vjava/awt/ColorwhiteLjava/awt/Color; setBackground(Ljava/awt/Color;)VsetViewportView(Ljava/awt/Component;)V*(Ljava/awt/Component;)Ljava/awt/Component;;(Ljavax/swing/JFrame;Ljava/lang/String;Ljava/lang/String;)VgetPath getFileNamejavax/imageio/ImageIOread.(Ljava/io/File;)Ljava/awt/image/BufferedImage;java/lang/SystemoutLjava/io/PrintStream;append,(Ljava/lang/String;)Ljava/lang/StringBuffer;toStringjava/io/PrintStreamprintlnjava/awt/Image getSource ()Ljava/awt/image/ImageProducer;=(Ljava/awt/image/ImageProducer;Ljava/awt/image/ImageFilter;)V createImage0(Ljava/awt/image/ImageProducer;)Ljava/awt/Image;newImagerepaintM(Ljavax/swing/JFrame;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)VgetFile()Ljava/io/File;writeA(Ljava/awt/image/RenderedImage;Ljava/lang/String;Ljava/io/File;)Zexit(I)Vjava/awt/event/ActionEventgetActionCommandgetMethodVariety$(Ljava/lang/String;)Ljava/awt/Point;java/awt/Pointxy(Ljava/awt/Frame;)VgetPreferredSize()Ljava/awt/Dimension;getSize getLocation()Ljava/awt/Point;widthheight setLocationsetModalpackshow()Ljava/awt/Image;java/awt/GraphicsEnvironmentgetLocalGraphicsEnvironment ()Ljava/awt/GraphicsEnvironment;getDefaultScreenDevice()Ljava/awt/GraphicsDevice;java/awt/GraphicsDevicegetDefaultConfiguration"()Ljava/awt/GraphicsConfiguration;getWidth!(Ljava/awt/image/ImageObserver;)I getHeightjava/awt/GraphicsConfigurationcreateCompatibleImage#(III)Ljava/awt/image/BufferedImage;(III)VcreateGraphics()Ljava/awt/Graphics2D;java/awt/Graphics drawImage3(Ljava/awt/Image;IILjava/awt/image/ImageObserver;)Zdisposejava/awt/event/WindowEventgetID()I!  **Y * Y * Y* Y* Y* Y * Y * Y*Y****** L+"!N&%0;FQ\g!q"w'{(*-+,.u#$%&Y$$'()L*+**+Y*,-**./0*1Y23*45* 67*89*O:;**?9*S:;*@*AY**B>*C9*s:;*DY**E>*F7GY**HM> YIJ::6K:L YM:,>NW# YIM:,>*NW *NW*O7*P9*QY**R>* *NW* *NW* *NW**NW* * SW* *SW* *SW** T*0UV*WYXYZY[N-*Y\*0-]W62!3&426=7N8T:];f<s>@ACDFGILMNOPQSTUW)X/Y7[:\@]M^S_]``bjNpfyghjklmnopqtvw xyzf )Mkgd!2 !2^Y*_`aM,bN*,c-jdY,be:*f":ghYijklkmnoYp:*qY*rst:*Yu*Yv+47!:~ +479V_u~R9+Z_&u ytKwY*x*yzM,{N-3*|}-~W":ghYiklkmn(+!"(+-J4-KK:5= C+MY,,N**qY*r-st*Y*u*@/:B*CC;+TY*M,N*:*:,-dl`-dl`,,,** BGKOS>TT KF@: k**Y*K<MN66-::**M:,!66Y**M,:*W, IL^  #'*07ILNRUY\pvf #&07NUmk g  v   U*++ɠ*N*LY+2 2QGDA<+PK tt6CbMainFrame_AboutBox.class.    V  U U U U U  U  U U U U U  U  U U  U " U U U U U@ U U 1 U U U   U   " "      U  U U V U panel1Ljavax/swing/JPanel;panel2 insetsPanel1 insetsPanel2 insetsPanel3button1Ljavax/swing/JButton; imageLabelLjavax/swing/JLabel;label1label2label3label4image1Ljavax/swing/ImageIcon; borderLayout1Ljava/awt/BorderLayout; borderLayout2 flowLayout1Ljava/awt/FlowLayout; gridLayout1Ljava/awt/GridLayout;productLjava/lang/String;version copyrightcommentsclass$MainFrameLjava/lang/Class; Synthetic(Ljava/awt/Frame;)VCodeLineNumberTableLocalVariableTableeLjava/lang/Exception;thisLMainFrame_AboutBox;parentLjava/awt/Frame;()VjbInit ExceptionsprocessWindowEvent(Ljava/awt/event/WindowEvent;)VLjava/awt/event/WindowEvent;cancelactionPerformed(Ljava/awt/event/ActionEvent;)VLjava/awt/event/ActionEvent;class$%(Ljava/lang/String;)Ljava/lang/Class;x1"Ljava/lang/ClassNotFoundException;x0 SourceFileMainFrame_AboutBox.java  java/lang/ClassNotFoundExceptionjava/lang/NoClassDefFoundError w wxjavax/swing/JPanel w XY ZY [Y \Y ]Yjavax/swing/JButton ^_javax/swing/JLabel `a ba ca da eajavax/swing/ImageIcon fgjava/awt/BorderLayout hi jijava/awt/FlowLayout kljava/awt/GridLayout mn Halftoner op Version 1.0 qpCopyright (c) 2007 rpMark A. Schulze sp java/lang/Exception tu MainFrame  hticon.png w About  Ok   West  CenterSouthNorth       MainFrame_AboutBoxjavax/swing/JDialogjava/awt/event/ActionListenerjava/lang/ClassforName getMessage()Ljava/lang/String;(Ljava/lang/String;)V enableEvents(J)VprintStackTrace getResource"(Ljava/lang/String;)Ljava/net/URL;(Ljava/net/URL;)VsetIcon(Ljavax/swing/Icon;)VsetTitle setLayout(Ljava/awt/LayoutManager;)Vjavax/swing/BorderFactorycreateEmptyBorder!(IIII)Ljavax/swing/border/Border; setBorder(Ljavax/swing/border/Border;)VsetRows(I)V setColumnssetTextaddActionListener"(Ljava/awt/event/ActionListener;)Vadd)(Ljava/awt/Component;Ljava/lang/Object;)Vjava/awt/ColorwhiteLjava/awt/Color; setBackground(Ljava/awt/Color;)VgetContentPane()Ljava/awt/Container;java/awt/Container setResizable(Z)Vjava/awt/event/WindowEventgetID()Idisposejava/awt/event/ActionEvent getSource()Ljava/lang/Object;!UVWXYZY[Y\Y]Y^_`abacadaeafghijiklmnopqprpsptuvwxy*+*Y *Y *Y *Y *Y *Y*Y*Y*Y*Y*Y*Y*Y*Y*Y !*"Y#$*%&*'(*)**+,*-/*0M,21zn'&1<GR]hs~ !"#$(*.,-/{ |}~wy4*3z 23{ ~y8*Y456Y44789**:*;<* *=* *=* *!=* *!=*     >?*$@*$A**&B**(B***B**,B* *$=*  <  >?*CD**E* *F* GH* * IF*J* K* *F* GH* *F* *F* *F* * LF* *F* GH* * MF* * NF*Oz"7%8096:A;L<W=b>t?|@ABCDEFGHIJKL MN#O/P;QGRTS`TjUwVWX{ ~1yT+Pɠ*Q*+Rz\ ]_`{~|y3*Sz de{ ~yL+T**Qzi jl{~|yN*LY+z7{ pvPK z60OpenDialog$ImageFilter.class.Q 3 45 6 78 49 7: 7; 7< 7=>@AjpegLjava/lang/String; ConstantValuejpggiftifftifpng()VCodeLineNumberTableLocalVariableTablethis ImageFilter InnerClassesLOpenDialog$ImageFilter;accept(Ljava/io/File;)ZfLjava/io/File; extension getExtension"(Ljava/io/File;)Ljava/lang/String;extsiIgetDescription()Ljava/lang/String; SourceFileOpenDialog.java B CD )*E FG H0 IJ KL MN O0$JPEG, PNG, TIFF, and GIF images onlyPOpenDialog$ImageFilter"javax/swing/filechooser/FileFilter java/io/File isDirectory()Zjava/lang/Stringequals(Ljava/lang/Object;)ZgetName lastIndexOf(I)Ilength()I substring(I)Ljava/lang/String; toLowerCase OpenDialog!  3* _  #$%O+*+M,=,0,',,,  , "mn pqrIxKzM} O #O&'@()*-M+ N-. 6- d-`M,+4- #-&'++&,-./0-  #12" ?! PK z6cOpenDialog$TextFilter.class.I + ,- . /0 ,1 /2 /3 /4 /5689txtLjava/lang/String; ConstantValue()VCodeLineNumberTableLocalVariableTablethis TextFilter InnerClassesLOpenDialog$TextFilter;accept(Ljava/io/File;)ZfLjava/io/File; extensionisTextZ getExtension"(Ljava/io/File;)Ljava/lang/String;extsiIgetDescription()Ljava/lang/String; SourceFileOpenDialog.java : ;< !"= >? @( AB CD EF G(Text files (.txt) onlyHOpenDialog$TextFilter"javax/swing/filechooser/FileFilter java/io/File isDirectory()Zjava/lang/Stringequals(Ljava/lang/Object;)ZgetName lastIndexOf(I)Ilength()I substring(I)Ljava/lang/String; toLowerCase OpenDialog! 3*  "+*+M>,,>  *"" !"-M+N-.6-d-` M,+4--+#&$%&'(-  )*  7 PK z6 OpenDialog.class.x H IJK LM N OPQ H RST H UV N W X Y Z [ \ ]^ H _ ` a bcd TextFilter InnerClasses ImageFilter IMAGE_TYPELjava/lang/String; ConstantValue TEXT_TYPEtheFileLjava/io/File;defaultDirectory;(Ljavax/swing/JFrame;Ljava/lang/String;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTabledefDirthis LOpenDialog;parentLjavax/swing/JFrame;titletypechooserLjavax/swing/JFileChooser; defaultDir returnValIgetPath()Ljava/lang/String;path getFileNamename getDirectorydirgetDefaultDirectorysetDefaultDirectory(Ljava/lang/String;)V SourceFileOpenDialog.java +e ()javax/swing/JFileChooseruser.dirf gh +E iEimageOpenDialog$ImageFilter jktextOpenDialog$TextFilter C= java/io/File lm no pq r= DE <= s=java/lang/StringBuffer tu v% w= *% OpenDialogjava/lang/Object()Vjava/lang/System getProperty&(Ljava/lang/String;)Ljava/lang/String;setDialogTitle setFileFilter'(Ljavax/swing/filechooser/FileFilter;)VsetCurrentDirectory(Ljava/io/File;)VshowOpenDialog(Ljava/awt/Component;)IgetSelectedFile()Ljava/io/File; getParentgetNameappend,(Ljava/lang/String;)Ljava/lang/StringBuffer; separatortoString! $%&'%& () *%+,-<**Y:,- Y -  Y :Y:+6 ** *.J #28DIN Y!`$h%m&v(})*/RY0)12345%6%q78I?9%h :;<=-SL* *L+.12 34/12>%?=-SL* *L+.<= >?/12@%A=-f&L*Y*L+.GH I$J/&12$B% C=-.RDE-3*. VW/ 9%FG" ! # PK r6_+h SaveDialog.class. G HI G JK G L M NO P Q RS T U V W RX YZ [\] ^_ ` ab cd cefgtheFileLjava/io/File;M(Ljavax/swing/JFrame;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)VCodeLineNumberTableLocalVariableTabledefFiledefDir chosenOptionIthis LSaveDialog;frLjavax/swing/JFrame;titleLjava/lang/String; defaultName extensionchooserLjavax/swing/JFileChooser; defaultDir returnValgetPath()Ljava/lang/String;path getFileNamenamegetFile()Ljava/io/File; getDirectorydirstripExtension&(Ljava/lang/String;)Ljava/lang/String;dotIndexfname SourceFileSaveDialog.java #h !"javax/swing/JFileChooser ijjava/lang/StringBuffer AB kl m9 java/io/File #j nop q9 ro st u> v9 wj xyReplace existing file z9?Replace existing file?{ |} 89 ~1.  SaveDialogjava/lang/Object()VsetDialogTitle(Ljava/lang/String;)Vappend,(Ljava/lang/String;)Ljava/lang/StringBuffer;toStringsetSelectedFile(Ljava/io/File;)V OpenDialoggetDefaultDirectorysetCurrentDirectoryshowSaveDialog(Ljava/awt/Component;)IgetSelectedFile getParentsetDefaultDirectoryexists()ZgetNamejavax/swing/JOptionPaneshowConfirmDialog=(Ljava/awt/Component;Ljava/lang/Object;Ljava/lang/String;II)I separatorjava/lang/String lastIndexOf(Ljava/lang/String;)I substring(II)Ljava/lang/String;! !"#$% **Y:,-+Y-  N Y- : : Y :+6 **I**5+Y *  6*&Z 3=D I!N"Y#`&h'm(v*}+-.236'p =("Y)" *+,-./01213145I{61h\7+89%SL* *L+&=> ?@',-:1;9%SL* *L+&HI JK',-<1=>%/*&O' ,-?9%f&L*Y*  L+&WX Y$Z'&,-$@1 AB%\**< *K*&de fgj' C+D1EFPK t67 hticon.pngPNG  IHDRh6XIDATxڕA nOvPL=@q)C rSV)*^&wؐg)v֎ xI4L7MM"$ȮIENDB`PK s6Q@cchticonorig.pngPNG  IHDR:tIME IDATxc dB`1T&pIENDB`PK z6Kĸ00META-INF/MANIFEST.MFPK [6n[ [ bGrayscale.classPK 8h6b~Q33 Halftone.classPK n6z?HalftoneImage.classPK r6j) XHalftoner.classPK V6