Your browser does not support JavaScript and this site utilizes JavaScript to build content and provide links to additional information. You should either enable JavaScript in your browser settings or use a browser that supports JavaScript in order to take full advantage of this site.
1 32 package com.imagero.uio.io; 33 34 import java.io.IOException ; 35 import java.io.InputStream ; 36 37 42 public class RLE8InputStream extends RLEInputStream { 43 44 int numSamples, value; 45 boolean copyLiter; 46 boolean ignoreByte; 47 48 public RLE8InputStream(InputStream in) { 49 super(in); 50 } 51 52 public int read() throws IOException { 53 if (numSamples == 0) { 54 if (ignoreByte) { 55 ignoreByte = false; 56 in.read(); 57 } 58 int l = in.read(); 59 if (l == 0) { 60 value = in.read(); 61 switch (value) { 62 case 0: 63 throw new EndOfLineException(); 64 case 1: 65 finished = true; 66 throw new EndOfBitmapException(); 67 case 2: 68 int x = in.read(); 69 int y = in.read(); 70 throw new DeltaRecordException(Integer.toHexString(x) + Integer.toHexString(y)); 71 default: 72 copyLiter = true; 73 numSamples = value; 74 if ((numSamples & 1) != 0) { 75 ignoreByte = true; 76 } 77 } 78 } 79 else { 80 numSamples = l; 81 copyLiter = false; 82 value = in.read(); 83 } 84 } 85 numSamples--; 86 if (copyLiter) { 87 return in.read(); 88 } 89 else { 90 return value; 91 } 92 } 93 } 94
| Popular Tags
|