package uk.co.mmscomputing.io; import java.io.*; public class ModREADOutputStream extends READOutputStream{ private int kmax; private int k; // counter: when to write next reference line public ModREADOutputStream(OutputStream out,int width){ this(out,width,true); } public ModREADOutputStream(OutputStream out,int width,boolean highresl){ super(out,width); kmax=(highresl)?3:1; // 196:98 dpi } public void writeEOL()throws IOException{ // one EOL needs to be written before start of page super.writeEOL(); // initialize new line write(0,3);write(EOLCW,12); // EOL if(k==0){ write(1,1); // Write one bit; 1=reference line k=kmax; // reset line counter }else{ write(0,1); // Write one bit; 0=2-dim codes k--; // decrease line counter } } public void write(int runlen)throws IOException{ if(k==kmax){write1D(runlen);}else{write2D(runlen);} } } /* [1] http://www.netnam.vn/unescocourse/computervision/105.htm [last accessed 2005-10-15] [2] http://www.buddism.ru//DHARMA_text/YagpoTibetanOCR/_OCR/WORK_ARCH/hsfsys2.2/src/lib/image/grp4comp.c [last accessed 2005-10-15] */