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); }