package uk.co.mmscomputing.io; import java.io.*; public class ModModREADOutputStream extends READOutputStream{ // T.6 MMR Output Stream. How to use, see ..imageio.tiff.TIFFImageWriter public ModModREADOutputStream(OutputStream out,int width){ super(out,width); } public void writeEOFB()throws IOException{ // TIFF Class F does want EOFB after every strip write(0x00800800,24); } public void flush()throws IOException{ cleanupEOL(); // the super classes behaviour is to byte-align the stream here, we don't want that. // but RLEOutputStream needs to be flushed after every row } public void close()throws IOException{ write(0x0000,8); // flush last bits super.close(); } public void write(int runlen)throws IOException{ write2D(runlen); // T.6 does only use READ codes, no reference line } } /* [1] FAX: Facsimile Technology and Systems (3rd); Kenneth McConnell,Dennis Bodson,Stephen Urban Artech House Publishers ISBN: 0-89006-944-1 [2] RFC 2306: Tag Image File Format (TIFF) - F Profile for Facsimile [3] ITU T.4: Group 3 MR code; Modified READ Code; READ = Relative Element Address Designate [4] ITU T.6: Group 4 MMR code; Modified Modified READ [5] http://einstein.informatik.uni-oldenburg.de/rechnernetze/ccitt_t4.htm [last accessed: 2005-08-26] [6] http://www.buddism.ru//DHARMA_text/YagpoTibetanOCR/_OCR/WORK_ARCH/hsfsys2.2/src/lib/image/grp4deco.c [last accessed: 2005-10-13] */