本文整理汇总了C#中System.util.zlib.ZDeflaterOutputStream.Write方法的典型用法代码示例。如果您正苦于以下问题:C# ZDeflaterOutputStream.Write方法的具体用法?C# ZDeflaterOutputStream.Write怎么用?C# ZDeflaterOutputStream.Write使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.util.zlib.ZDeflaterOutputStream
的用法示例。
在下文中一共展示了ZDeflaterOutputStream.Write方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteData
virtual public void WriteData(byte[] data, int stride) {
MemoryStream stream = new MemoryStream();
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream, 5);
int k;
for (k = 0; k < data.Length - stride; k += stride) {
zip.WriteByte(0);
zip.Write(data, k, stride);
}
int remaining = data.Length - k;
if (remaining > 0){
zip.WriteByte(0);
zip.Write(data, k, remaining);
}
zip.Close();
WriteChunk(IDAT, stream.ToArray());
}
示例2: FlateCompress
/**
* Compresses the stream.
* @param compressionLevel the compression level (0 = best speed, 9 = best compression, -1 is default)
* @since 2.1.3
*/
virtual public void FlateCompress(int compressionLevel) {
if (!Document.Compress)
return;
// check if the flateCompress-method has already been used
if (compressed) {
return;
}
this.compressionLevel = compressionLevel;
if (inputStream != null) {
compressed = true;
return;
}
// check if a filter already exists
PdfObject filter = PdfReader.GetPdfObject(Get(PdfName.FILTER));
if (filter != null) {
if (filter.IsName()) {
if (PdfName.FLATEDECODE.Equals(filter))
return;
}
else if (filter.IsArray()) {
if (((PdfArray) filter).Contains(PdfName.FLATEDECODE))
return;
}
else {
throw new PdfException(MessageLocalization.GetComposedMessage("stream.could.not.be.compressed.filter.is.not.a.name.or.array"));
}
}
// compress
MemoryStream stream = new MemoryStream();
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream, compressionLevel);
if (streamBytes != null)
streamBytes.WriteTo(zip);
else
zip.Write(bytes, 0, bytes.Length);
//zip.Close();
zip.Finish();
// update the object
streamBytes = stream;
bytes = null;
Put(PdfName.LENGTH, new PdfNumber(streamBytes.Length));
if (filter == null) {
Put(PdfName.FILTER, PdfName.FLATEDECODE);
}
else {
PdfArray filters = new PdfArray(filter);
filters.Add(0, PdfName.FLATEDECODE);
Put(PdfName.FILTER, filters);
}
compressed = true;
}
示例3: WriteIccProfile
virtual public void WriteIccProfile(byte[] data) {
MemoryStream stream = new MemoryStream();
stream.WriteByte((byte)'I');
stream.WriteByte((byte)'C');
stream.WriteByte((byte)'C');
stream.WriteByte(0);
stream.WriteByte(0);
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream, 5);
zip.Write(data, 0, data.Length);
zip.Close();
WriteChunk(iCCP, stream.ToArray());
}
示例4: PRStream
/**
* Creates a new PDF stream object that will replace a stream
* in a existing PDF file.
* @param reader the reader that holds the existing PDF
* @param conts the new content
* @param compressionLevel the compression level for the content
* @since 2.1.3 (replacing the existing constructor without param compressionLevel)
*/
public PRStream(PdfReader reader, byte[] conts, int compressionLevel) {
this.reader = reader;
this.offset = -1;
if (Document.Compress) {
MemoryStream stream = new MemoryStream();
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream, compressionLevel);
zip.Write(conts, 0, conts.Length);
zip.Close();
bytes = stream.ToArray();
Put(PdfName.FILTER, PdfName.FLATEDECODE);
}
else
bytes = conts;
Length = bytes.Length;
}
示例5: SetData
/**
* Sets the data associated with the stream, either compressed or
* uncompressed. Note that the data will never be compressed if
* Document.compress is set to false.
*
* @param data raw data, decrypted and uncompressed.
* @param compress true if you want the stream to be compresssed.
* @param compressionLevel a value between -1 and 9 (ignored if compress == false)
* @since iText 2.1.3
*/
virtual public void SetData(byte[] data, bool compress, int compressionLevel) {
Remove(PdfName.FILTER);
this.offset = -1;
if (Document.Compress && compress) {
MemoryStream stream = new MemoryStream();
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream, compressionLevel);
zip.Write(data, 0, data.Length);
zip.Close();
bytes = stream.ToArray();
this.compressionLevel = compressionLevel;
Put(PdfName.FILTER, PdfName.FLATEDECODE);
}
else
bytes = data;
Length = bytes.Length;
}
示例6: ProcessExtraSamples
static Image ProcessExtraSamples(ZDeflaterOutputStream zip, ZDeflaterOutputStream mzip, byte[] outBuf, int samplePerPixel, int bitsPerSample, int width, int height)
{
if (bitsPerSample == 8) {
byte[] mask = new byte[width * height];
int mptr = 0;
int optr = 0;
int total = width * height * samplePerPixel;
for (int k = 0; k < total; k += samplePerPixel) {
for (int s = 0; s < samplePerPixel - 1; ++s) {
outBuf[optr++] = outBuf[k + s];
}
mask[mptr++] = outBuf[k + samplePerPixel - 1];
}
zip.Write(outBuf, 0, optr);
mzip.Write(mask, 0, mptr);
}
else
throw new ArgumentException(MessageLocalization.GetComposedMessage("extra.samples.are.not.supported"));
return null;
}
示例7: WriteData
public void WriteData(byte[] data, int stride)
{
MemoryStream stream = new MemoryStream();
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream, 5);
for (int k = 0; k < data.Length; k += stride) {
zip.WriteByte(0);
zip.Write(data, k, stride);
}
zip.Finish();
WriteChunk(IDAT, stream.ToArray());
}
示例8: FlateCompress
// methods
/**
* Compresses the stream.
*
* @throws PdfException if a filter is allready defined
*/
public void FlateCompress()
{
if (!Document.Compress)
return;
// check if the flateCompress-method has allready been
if (compressed) {
return;
}
if (inputStream != null) {
compressed = true;
return;
}
// check if a filter allready exists
PdfObject filter = PdfReader.GetPdfObject(Get(PdfName.FILTER));
if (filter != null) {
if (filter.IsName()) {
if (PdfName.FLATEDECODE.Equals(filter))
return;
}
else if (filter.IsArray()) {
if (((PdfArray) filter).Contains(PdfName.FLATEDECODE))
return;
}
else {
throw new PdfException("Stream could not be compressed: filter is not a name or array.");
}
}
// compress
MemoryStream stream = new MemoryStream();
ZDeflaterOutputStream zip = new ZDeflaterOutputStream(stream);
if (streamBytes != null)
streamBytes.WriteTo(zip);
else
zip.Write(bytes, 0, bytes.Length);
//zip.Close();
zip.Finish();
// update the object
streamBytes = stream;
bytes = null;
Put(PdfName.LENGTH, new PdfNumber(streamBytes.Length));
if (filter == null) {
Put(PdfName.FILTER, PdfName.FLATEDECODE);
}
else {
PdfArray filters = new PdfArray(filter);
filters.Add(PdfName.FLATEDECODE);
Put(PdfName.FILTER, filters);
}
compressed = true;
}