📄 ccittfaxdecodefilter.java
字号:
}
private void writeTagStripOffset(OutputStream result, int value) throws IOException
{
// TAG-ID 111
result.write(1);
result.write(17);
// TAG-TYPE LONG=4
result.write(0);
result.write(4);
// TAG-LENGTH=1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE = 8 //VOR TAG-DICTIONARY
int i1 = value/16777216;//=value/(256*256*256)
int i2 = (value-i1*16777216)/65536;
int i3 = (value-i1*16777216-i2*65536)/256;
int i4 = value % 256;
result.write(i1);
result.write(i2);
result.write(i3);
result.write(i4);
}
private void writeTagSamplesPerPixel(OutputStream result, int value) throws IOException
{
// TAG-ID 115
result.write(1);
result.write(21);
// TAG-TYPE SHORT=3
result.write(0);
result.write(3);
// TAG-LENGTH=1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE
result.write(value / 256);
result.write(value % 256);
result.write(0);// SHORT=0
result.write(0);// SHORT=0
}
private void writeTagRowsPerStrip(OutputStream result, int value) throws IOException
{
// TAG-ID 116
result.write(1);
result.write(22);
// TAG-TYPE SHORT=3
result.write(0);
result.write(3);
// TAG-LENGTH=1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE
result.write(value / 256);
result.write(value % 256);
result.write(0);// SHORT=0
result.write(0);// SHORT=0
}
private void writeTagStripByteCount(OutputStream result, int value) throws IOException
{
//@todo value auswerten
// TAG-ID 117
result.write(1);
result.write(23);
// TAG-TYPE LONG=4
result.write(0);
result.write(4);
// TAG-LENGTH = 1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE
int i1 = value/16777216;//=value/(256*256*256)
int i2 = (value-i1*16777216)/65536;
int i3 = (value-i1*16777216-i2*65536)/256;
int i4 = value % 256;
result.write(i1);
result.write(i2);
result.write(i3);
result.write(i4);
}
private void writeTagXRes(OutputStream result, int value1, int value2) throws IOException
{
// TAG-ID 11A
result.write(1);
result.write(26);
// TAG-TYPE RATIONAL=5
result.write(0);
result.write(5);
// TAG-LENGTH=1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE=OFFSET TO RATIONAL
int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
int i1 = valueOffset/16777216;//=value/(256*256*256)
int i2 = (valueOffset-i1*16777216)/65536;
int i3 = (valueOffset-i1*16777216-i2*65536)/256;
int i4 = valueOffset % 256;
result.write(i1);
result.write(i2);
result.write(i3);
result.write(i4);
i1 = value1 /16777216;
i2 = (value1-i1*16777216)/65536;
i3 = (value1-i1*16777216 - i2*65536)/256;
i4 = value1 % 256;
tailer.write(i1);
tailer.write(i2);
tailer.write(i3);
tailer.write(i4);
i1 = value2 /16777216;
i2 = (value2-i1*16777216)/65536;
i3 = (value2-i1*16777216 - i2*65536)/256;
i4 = value2 % 256;
tailer.write(i1);
tailer.write(i2);
tailer.write(i3);
tailer.write(i4);
tailingBytesCount += 8;
}
private void writeTagYRes(OutputStream result, int value1, int value2) throws IOException
{
// TAG-ID 11B
result.write(1);
result.write(27);
// TAG-TYPE RATIONAL=5
result.write(0);
result.write(5);
// TAG-LENGTH=1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE=OFFSET TO RATIONAL
int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
int i1 = valueOffset/16777216;//=value/(256*256*256)
int i2 = (valueOffset-i1*16777216)/65536;
int i3 = (valueOffset-i1*16777216-i2*65536)/256;
int i4 = valueOffset % 256;
result.write(i1);
result.write(i2);
result.write(i3);
result.write(i4);
i1 = value1 /16777216;
i2 = (value1-i1*16777216)/65536;
i3 = (value1-i1*16777216 - i2*65536)/256;
i4 = value1 % 256;
tailer.write(i1);
tailer.write(i2);
tailer.write(i3);
tailer.write(i4);
i1 = value2 /16777216;
i2 = (value2-i1*16777216)/65536;
i3 = (value2-i1*16777216 - i2*65536)/256;
i4 = value2 % 256;
tailer.write(i1);
tailer.write(i2);
tailer.write(i3);
tailer.write(i4);
tailingBytesCount += 8;
}
private void writeTagResolutionUnit(OutputStream result, int value) throws IOException
{
// TAG-ID 128
result.write(1);
result.write(40);
// TAG-TYPE SHORT=3
result.write(0);
result.write(3);
// TAG-LENGTH = 1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE
result.write(value/256);
result.write(value%256);
result.write(0);// SHORT=0
result.write(0);// SHORT=0
}
private void writeTagOrientation(OutputStream result, int value) throws IOException
{
// TAG-ID 112
result.write(1);
result.write(18);
// TAG-TYPE SHORT = 3
result.write(0);
result.write(3);
// TAG-LENGTH=1
result.write(0);
result.write(0);
result.write(0);
result.write(1);
// TAG-VALUE
result.write(value / 256);
result.write(value % 256);
result.write(0);// SHORT=0
result.write(0);// SHORT=0
}
private void writeTagTailer(OutputStream result) throws IOException
{
// END OF TAG-DICTIONARY
result.write(0);
result.write(0);
result.write(0);
result.write(0);
// TAILER WITH VALUES OF RATIONALFIELD's
result.write(tailer.toByteArray());
}
private void writeTagSoftware(OutputStream result, byte[] text) throws IOException
{
// TAG-ID 131
result.write(1);
result.write(49);
// TAG-TYPE ASCII=2
result.write(0);
result.write(2);
// TAG-LENGTH=id.length+1
result.write(0);
result.write(0);
result.write((text.length + 1) / 256);
result.write((text.length + 1) % 256);
// TAG-VALUE
int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
int i1 = valueOffset/16777216;//=value/(256*256*256)
int i2 = (valueOffset-i1*16777216)/65536;
int i3 = (valueOffset-i1*16777216-i2*65536)/256;
int i4 = valueOffset % 256;
result.write(i1);
result.write(i2);
result.write(i3);
result.write(i4);
tailer.write(text);
tailer.write(0);
tailingBytesCount += text.length + 1;
}
private void writeTagDateTime(OutputStream result, Date date) throws IOException
{
// TAG-ID 132
result.write(1);
result.write(50);
// TAG-TYPE ASCII=2
result.write(0);
result.write(2);
// TAG-LENGTH=20
result.write(0);
result.write(0);
result.write(0);
result.write(20);
// TAG-VALUE
int valueOffset = offset + 6 + 12 * TAG_COUNT + tailer.size();
int i1 = valueOffset/16777216;//=value/(256*256*256)
int i2 = (valueOffset-i1*16777216)/65536;
int i3 = (valueOffset-i1*16777216-i2*65536)/256;
int i4 = valueOffset % 256;
result.write(i1);
result.write(i2);
result.write(i3);
result.write(i4);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
String datetime = sdf.format(date);
tailer.write(datetime.getBytes());
tailer.write(0);
tailingBytesCount += 20;
}
/**
* This will encode some data.
*
* @param rawData
* The raw data to encode.
* @param result
* The place to write to encoded results to.
* @param options
* The options to use to encode the data.
*
* @throws IOException
* If there is an error compressing the stream.
*/
public void encode(InputStream rawData, OutputStream result, COSDictionary options) throws IOException
{
System.err.println("Warning: CCITTFaxDecode.encode is not implemented yet, skipping this stream.");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -