public class com.sun.imageio.plugins.tiff.TIFFDeflater extends com.sun.imageio.plugins.tiff.TIFFCompressor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.sun.imageio.plugins.tiff.TIFFDeflater
super_class: com.sun.imageio.plugins.tiff.TIFFCompressor
{
java.util.zip.Deflater deflater;
descriptor: Ljava/util/zip/Deflater;
flags: (0x0000)
int predictor;
descriptor: I
flags: (0x0000)
public void <init>(java.lang.String, int, javax.imageio.ImageWriteParam, int);
descriptor: (Ljava/lang/String;ILjavax/imageio/ImageWriteParam;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=5
start local 0 // com.sun.imageio.plugins.tiff.TIFFDeflater this
start local 1 // java.lang.String compressionType
start local 2 // int compressionTagValue
start local 3 // javax.imageio.ImageWriteParam param
start local 4 // int predictorValue
0: .line 44
aload 0 /* this */
aload 1 /* compressionType */
iload 2 /* compressionTagValue */
iconst_1
invokespecial com.sun.imageio.plugins.tiff.TIFFCompressor.<init>:(Ljava/lang/String;IZ)V
1: .line 46
aload 0 /* this */
iload 4 /* predictorValue */
putfield com.sun.imageio.plugins.tiff.TIFFDeflater.predictor:I
2: .line 50
aload 3 /* param */
ifnull 7
3: .line 51
aload 3 /* param */
invokevirtual javax.imageio.ImageWriteParam.getCompressionMode:()I
iconst_2
if_icmpne 7
4: .line 52
aload 3 /* param */
invokevirtual javax.imageio.ImageWriteParam.getCompressionQuality:()F
fstore 6 /* quality */
start local 6 // float quality
5: .line 53
fconst_1
ldc 8.0
fload 6 /* quality */
fmul
fadd
f2i
istore 5 /* deflateLevel */
end local 6 // float quality
start local 5 // int deflateLevel
6: .line 54
goto 8
end local 5 // int deflateLevel
7: .line 55
StackMap locals: com.sun.imageio.plugins.tiff.TIFFDeflater java.lang.String int javax.imageio.ImageWriteParam int
StackMap stack:
iconst_m1
istore 5 /* deflateLevel */
start local 5 // int deflateLevel
8: .line 58
StackMap locals: int
StackMap stack:
aload 0 /* this */
new java.util.zip.Deflater
dup
iload 5 /* deflateLevel */
invokespecial java.util.zip.Deflater.<init>:(I)V
putfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
9: .line 59
return
end local 5 // int deflateLevel
end local 4 // int predictorValue
end local 3 // javax.imageio.ImageWriteParam param
end local 2 // int compressionTagValue
end local 1 // java.lang.String compressionType
end local 0 // com.sun.imageio.plugins.tiff.TIFFDeflater this
LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/imageio/plugins/tiff/TIFFDeflater;
0 10 1 compressionType Ljava/lang/String;
0 10 2 compressionTagValue I
0 10 3 param Ljavax/imageio/ImageWriteParam;
0 10 4 predictorValue I
6 7 5 deflateLevel I
8 10 5 deflateLevel I
5 6 6 quality F
MethodParameters:
Name Flags
compressionType
compressionTagValue
param
predictorValue
public int encode(byte[], int, int, int, int[], int);
descriptor: ([BIII[II)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=18, args_size=7
start local 0 // com.sun.imageio.plugins.tiff.TIFFDeflater this
start local 1 // byte[] b
start local 2 // int off
start local 3 // int width
start local 4 // int height
start local 5 // int[] bitsPerSample
start local 6 // int scanlineStride
0: .line 66
iload 4 /* height */
iload 6 /* scanlineStride */
imul
istore 7 /* inputSize */
start local 7 // int inputSize
1: .line 67
iload 7 /* inputSize */
sipush 32767
iadd
ldc 32768
idiv
istore 8 /* blocks */
start local 8 // int blocks
2: .line 71
iload 7 /* inputSize */
iconst_5
iload 8 /* blocks */
imul
iadd
bipush 6
iadd
newarray 8
astore 9 /* compData */
start local 9 // byte[] compData
3: .line 73
iconst_0
istore 10 /* numCompressedBytes */
start local 10 // int numCompressedBytes
4: .line 74
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.predictor:I
iconst_2
if_icmpne 39
5: .line 75
aload 5 /* bitsPerSample */
arraylength
istore 11 /* samplesPerPixel */
start local 11 // int samplesPerPixel
6: .line 76
iconst_0
istore 12 /* bitsPerPixel */
start local 12 // int bitsPerPixel
7: .line 77
iconst_0
istore 13 /* i */
start local 13 // int i
8: goto 11
9: .line 78
StackMap locals: com.sun.imageio.plugins.tiff.TIFFDeflater byte[] int int int int[] int int int byte[] int int int int
StackMap stack:
iload 12 /* bitsPerPixel */
aload 5 /* bitsPerSample */
iload 13 /* i */
iaload
iadd
istore 12 /* bitsPerPixel */
10: .line 77
iinc 13 /* i */ 1
StackMap locals:
StackMap stack:
11: iload 13 /* i */
iload 11 /* samplesPerPixel */
if_icmplt 9
end local 13 // int i
12: .line 80
iload 12 /* bitsPerPixel */
iload 3 /* width */
imul
bipush 7
iadd
bipush 8
idiv
istore 13 /* bytesPerRow */
start local 13 // int bytesPerRow
13: .line 81
iload 13 /* bytesPerRow */
newarray 8
astore 14 /* rowBuf */
start local 14 // byte[] rowBuf
14: .line 83
iload 4 /* height */
iconst_1
isub
istore 15 /* maxRow */
start local 15 // int maxRow
15: .line 84
iconst_0
istore 16 /* i */
start local 16 // int i
16: goto 37
17: .line 87
StackMap locals: byte[] int int
StackMap stack:
aload 1 /* b */
iload 2 /* off */
aload 14 /* rowBuf */
iconst_0
iload 13 /* bytesPerRow */
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
18: .line 88
iload 13 /* bytesPerRow */
iconst_1
isub
istore 17 /* j */
start local 17 // int j
19: goto 22
20: .line 89
StackMap locals: int
StackMap stack:
aload 14 /* rowBuf */
iload 17 /* j */
dup2
baload
aload 14 /* rowBuf */
iload 17 /* j */
iload 11 /* samplesPerPixel */
isub
baload
isub
i2b
bastore
21: .line 88
iinc 17 /* j */ -1
StackMap locals:
StackMap stack:
22: iload 17 /* j */
iload 11 /* samplesPerPixel */
if_icmpge 20
end local 17 // int j
23: .line 92
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
aload 14 /* rowBuf */
invokevirtual java.util.zip.Deflater.setInput:([B)V
24: .line 93
iload 16 /* i */
iload 15 /* maxRow */
if_icmpne 26
25: .line 94
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
invokevirtual java.util.zip.Deflater.finish:()V
26: .line 97
StackMap locals:
StackMap stack:
iconst_0
istore 17 /* numBytes */
start local 17 // int numBytes
27: .line 98
goto 29
28: .line 102
StackMap locals: int
StackMap stack:
iload 10 /* numCompressedBytes */
iload 17 /* numBytes */
iadd
istore 10 /* numCompressedBytes */
29: .line 98
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
aload 9 /* compData */
30: .line 99
iload 10 /* numCompressedBytes */
31: .line 100
aload 9 /* compData */
arraylength
32: .line 101
iload 10 /* numCompressedBytes */
33: .line 100
isub
34: .line 98
invokevirtual java.util.zip.Deflater.deflate:([BII)I
dup
istore 17 /* numBytes */
ifne 28
35: .line 105
iload 2 /* off */
iload 6 /* scanlineStride */
iadd
istore 2 /* off */
end local 17 // int numBytes
36: .line 84
iinc 16 /* i */ 1
StackMap locals:
StackMap stack:
37: iload 16 /* i */
iload 4 /* height */
if_icmplt 17
end local 16 // int i
end local 15 // int maxRow
end local 14 // byte[] rowBuf
end local 13 // int bytesPerRow
end local 12 // int bitsPerPixel
end local 11 // int samplesPerPixel
38: .line 107
goto 42
39: .line 108
StackMap locals: com.sun.imageio.plugins.tiff.TIFFDeflater byte[] int int int int[] int int int byte[] int
StackMap stack:
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
aload 1 /* b */
iload 2 /* off */
iload 4 /* height */
iload 6 /* scanlineStride */
imul
invokevirtual java.util.zip.Deflater.setInput:([BII)V
40: .line 109
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
invokevirtual java.util.zip.Deflater.finish:()V
41: .line 111
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
aload 9 /* compData */
invokevirtual java.util.zip.Deflater.deflate:([B)I
istore 10 /* numCompressedBytes */
42: .line 114
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.deflater:Ljava/util/zip/Deflater;
invokevirtual java.util.zip.Deflater.reset:()V
43: .line 116
aload 0 /* this */
getfield com.sun.imageio.plugins.tiff.TIFFDeflater.stream:Ljavax/imageio/stream/ImageOutputStream;
aload 9 /* compData */
iconst_0
iload 10 /* numCompressedBytes */
invokeinterface javax.imageio.stream.ImageOutputStream.write:([BII)V
44: .line 118
iload 10 /* numCompressedBytes */
ireturn
end local 10 // int numCompressedBytes
end local 9 // byte[] compData
end local 8 // int blocks
end local 7 // int inputSize
end local 6 // int scanlineStride
end local 5 // int[] bitsPerSample
end local 4 // int height
end local 3 // int width
end local 2 // int off
end local 1 // byte[] b
end local 0 // com.sun.imageio.plugins.tiff.TIFFDeflater this
LocalVariableTable:
Start End Slot Name Signature
0 45 0 this Lcom/sun/imageio/plugins/tiff/TIFFDeflater;
0 45 1 b [B
0 45 2 off I
0 45 3 width I
0 45 4 height I
0 45 5 bitsPerSample [I
0 45 6 scanlineStride I
1 45 7 inputSize I
2 45 8 blocks I
3 45 9 compData [B
4 45 10 numCompressedBytes I
6 38 11 samplesPerPixel I
7 38 12 bitsPerPixel I
8 12 13 i I
13 38 13 bytesPerRow I
14 38 14 rowBuf [B
15 38 15 maxRow I
16 38 16 i I
19 23 17 j I
27 36 17 numBytes I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
b
off
width
height
bitsPerSample
scanlineStride
}
SourceFile: "TIFFDeflater.java"