public override ChunkRaw CreateRawChunk() { MemoryStream ba = new MemoryStream(); ChunkHelper.WriteBytesToStream(ba, ChunkHelper.ToBytes(PalName)); ba.WriteByte(0); // separator ba.WriteByte((byte)SampleDepth); int nentries = GetNentries(); for (int n = 0; n < nentries; n++) { for (int i = 0; i < 4; i++) { if (SampleDepth == 8) { PngHelperInternal.WriteByte(ba, (byte)Palette[n * 5 + i]); } else { PngHelperInternal.WriteInt2(ba, Palette[n * 5 + i]); } } PngHelperInternal.WriteInt2(ba, Palette[n * 5 + 4]); } byte[] b = ba.ToArray(); ChunkRaw chunk = createEmptyChunk(b.Length, false); chunk.Data = b; return(chunk); }
public override ChunkRaw CreateRawChunk() { if (key.Length == 0) { throw new PngjException("Text chunk key must be non empty"); } MemoryStream memoryStream = new MemoryStream(); ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytes(key)); memoryStream.WriteByte(0); memoryStream.WriteByte((byte)(compressed ? 1 : 0)); memoryStream.WriteByte(0); ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytes(langTag)); memoryStream.WriteByte(0); ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytesUTF8(translatedTag)); memoryStream.WriteByte(0); byte[] array = ChunkHelper.ToBytesUTF8(val); if (compressed) { array = ChunkHelper.compressBytes(array, compress: true); } ChunkHelper.WriteBytesToStream(memoryStream, array); byte[] array2 = memoryStream.ToArray(); ChunkRaw chunkRaw = createEmptyChunk(array2.Length, alloc: false); chunkRaw.Data = array2; return(chunkRaw); }
public override ChunkRaw CreateRawChunk() { if (key.Length == 0) { throw new PngjException("Text chunk key must be non empty"); } MemoryStream ba = new MemoryStream(); ChunkHelper.WriteBytesToStream(ba, ChunkHelper.ToBytes(key)); ba.WriteByte(0); // separator ba.WriteByte(compressed ? (byte)1 : (byte)0); ba.WriteByte(0); // compression method (always 0) ChunkHelper.WriteBytesToStream(ba, ChunkHelper.ToBytes(langTag)); ba.WriteByte(0); // separator ChunkHelper.WriteBytesToStream(ba, ChunkHelper.ToBytesUTF8(translatedTag)); ba.WriteByte(0); // separator byte[] textbytes = ChunkHelper.ToBytesUTF8(val); if (compressed) { textbytes = ChunkHelper.compressBytes(textbytes, true); } ChunkHelper.WriteBytesToStream(ba, textbytes); byte[] b = ba.ToArray(); ChunkRaw chunk = createEmptyChunk(b.Length, false); chunk.Data = b; return(chunk); }
public override ChunkRaw CreateRawChunk() { MemoryStream memoryStream = new MemoryStream(); ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytes(PalName)); memoryStream.WriteByte(0); memoryStream.WriteByte((byte)SampleDepth); int nentries = GetNentries(); for (int i = 0; i < nentries; i++) { for (int j = 0; j < 4; j++) { if (SampleDepth == 8) { PngHelperInternal.WriteByte(memoryStream, (byte)Palette[i * 5 + j]); } else { PngHelperInternal.WriteInt2(memoryStream, Palette[i * 5 + j]); } } PngHelperInternal.WriteInt2(memoryStream, Palette[i * 5 + 4]); } byte[] array = memoryStream.ToArray(); ChunkRaw chunkRaw = createEmptyChunk(array.Length, alloc: false); chunkRaw.Data = array; return(chunkRaw); }
public override ChunkRaw CreateRawChunk() { if (key.Length == 0) { throw new PngjException("Text chunk key must be non empty"); } MemoryStream ba = new MemoryStream(); ChunkHelper.WriteBytesToStream(ba, ChunkHelper.ToBytes(key)); ba.WriteByte(0); // separator ba.WriteByte(0); // compression method: 0 byte[] textbytes = ChunkHelper.compressBytes(ChunkHelper.ToBytes(val), true); ChunkHelper.WriteBytesToStream(ba, textbytes); byte[] b = ba.ToArray(); ChunkRaw chunk = createEmptyChunk(b.Length, false); chunk.Data = b; return(chunk); }
public override ChunkRaw CreateRawChunk() { if (key.Length == 0) { throw new PngjException("Text chunk key must be non empty"); } MemoryStream memoryStream = new MemoryStream(); ChunkHelper.WriteBytesToStream(memoryStream, ChunkHelper.ToBytes(key)); memoryStream.WriteByte(0); memoryStream.WriteByte(0); byte[] bytes = ChunkHelper.compressBytes(ChunkHelper.ToBytes(val), compress: true); ChunkHelper.WriteBytesToStream(memoryStream, bytes); byte[] array = memoryStream.ToArray(); ChunkRaw chunkRaw = createEmptyChunk(array.Length, alloc: false); chunkRaw.Data = array; return(chunkRaw); }