コード例 #1
0
ファイル: ImageMB.cs プロジェクト: zxc120/GARbro
        protected IBinaryStream OpenAsBitmap(IBinaryStream input)
        {
            var header = new byte[2] {
                (byte)'B', (byte)'M'
            };
            Stream stream = new StreamRegion(input.AsStream, 2, true);

            stream = new PrefixStream(header, stream);
            return(new BinaryStream(stream, input.Name));
        }
コード例 #2
0
        public override ImageData Read(IBinaryStream file, ImageMetaData info)
        {
            var meta = (MngMetaData)info;
            var body = new StreamRegion(file.AsStream, meta.PngOffset, true);

            using (var png = new PrefixStream(PngFormat.HeaderBytes, body))
            {
                var decoder = new PngBitmapDecoder(png, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
                var frame   = decoder.Frames[0];
                frame.Freeze();
                return(new ImageData(frame, info));
            }
        }
コード例 #3
0
        public MngFrameDecoder(IBinaryStream input)
        {
            var png = new PrefixStream(PngFormat.HeaderBytes, input.AsStream);

            m_input = new BinaryStream(png, input.Name);
            try
            {
                Info = ImageFormat.Png.ReadMetaData(m_input);
                if (null == Info)
                {
                    throw new InvalidFormatException();
                }
            }
            catch
            {
                m_input.Dispose();
                throw;
            }
        }