private void WriteSignatureAndIHDR()
{
CurrentChunkGroup = ChunksList.CHUNK_GROUP_0_IDHR;
PngHelperInternal.WriteBytes(outputStream, Hjg.Pngcs.PngHelperInternal.PNG_ID_SIGNATURE); // signature
PngChunkIHDR ihdr = new PngChunkIHDR(ImgInfo);
// http://www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html
ihdr.Cols = ImgInfo.Cols;
ihdr.Rows = ImgInfo.Rows;
ihdr.Bitspc = ImgInfo.BitDepth;
int colormodel = 0;
if (ImgInfo.Alpha)
colormodel += 0x04;
if (ImgInfo.Indexed)
colormodel += 0x01;
if (!ImgInfo.Greyscale)
colormodel += 0x02;
ihdr.Colormodel = colormodel;
ihdr.Compmeth = 0; // compression method 0=deflate
ihdr.Filmeth = 0; // filter method (0)
ihdr.Interlaced = 0; // never interlace
ihdr.CreateRawChunk().WriteChunk(outputStream);
}