Example #1
0
        public override void CloneDataFromRead(PngChunk other)
        {
            // THIS SHOULD NOT BE CALLED IF ALREADY CLONED WITH COPY CONSTRUCTOR
            PngChunkUNKNOWN c = (PngChunkUNKNOWN)other;

            data = c.data;             // not deep copy
        }
Example #2
0
        /// <summary>
        ///   If <paramref name="outFilePath" /> is NULL then file is written in-place.
        ///   <paramref name="chunkId" /> must follow the PNG conventions: four ascii letters, ID[0] :
        ///   lowercase (ancillary) ID[1] : lowercase if private, upppecase if public ID[3] : uppercase if
        ///   "safe to copy"
        /// </summary>
        public static void WriteCustomChunk(string inFilePath, string outFilePath, string chunkId, byte[] data)
        {
            PngChunk CreateChunk(ImageInfo imgInfo)
            {
                PngChunkUNKNOWN chunk = new PngChunkUNKNOWN(chunkId, imgInfo);

                chunk.SetData(data);
                chunk.Priority = true;

                return(chunk);
            }

            using (var inStream = OpenInputStream(inFilePath, outFilePath == null))
                WriteChunk(inStream, outFilePath ?? inFilePath, CreateChunk);
        }
Example #3
0
 PngChunkUNKNOWN(PngChunkUNKNOWN c, ImageInfo info)
     : base(c.Id, info)
 {
     System.Array.Copy(c.data, 0, data, 0, c.data.Length);
 }