コード例 #1
0
ファイル: PngReader.cs プロジェクト: Uyhuydgfae/Skitspel
        private void ProcessChunk(byte[] chunkBytes)
        {
            string chunkType = PngChunk.GetChunkTypeString(chunkBytes.Skip(4).Take(4).ToArray());

            switch (chunkType)
            {
            case "IHDR":

                var headerChunk = new HeaderChunk();
                headerChunk.Decode(chunkBytes);
                width         = (int)headerChunk.Width;
                height        = (int)headerChunk.Height;
                bitsPerSample = (int)headerChunk.BitDepth;
                colorType     = headerChunk.ColorType;
                chunks.Add(headerChunk);

                break;

            case "PLTE":

                var paletteChunk = new PaletteChunk();
                paletteChunk.Decode(chunkBytes);
                palette = paletteChunk.Palette;
                chunks.Add(paletteChunk);

                break;

            case "tRNS":

                var transparencyChunk = new TransparencyChunk();
                transparencyChunk.Decode(chunkBytes);
                palette.AddAlphaToColors(transparencyChunk.PaletteTransparencies);
                break;

            case "IDAT":

                var dataChunk = new DataChunk();
                dataChunk.Decode(chunkBytes);
                dataChunks.Add(dataChunk);

                break;

            default:
                break;
            }
        }
コード例 #2
0
ファイル: PngReader.cs プロジェクト: KennethYap/MonoGame
        private void ProcessChunk(byte[] chunkBytes)
        {
            string chunkType = PngChunk.GetChunkTypeString(chunkBytes.Skip(4).Take(4).ToArray());

            switch (chunkType)
            {
                case "IHDR":

                    var headerChunk = new HeaderChunk();
                    headerChunk.Decode(chunkBytes);
                    width = (int)headerChunk.Width;
                    height = (int)headerChunk.Height;
                    bitsPerSample = (int)headerChunk.BitDepth;
                    colorType = headerChunk.ColorType;
                    chunks.Add(headerChunk);

                    break;

                case "PLTE":

                    var paletteChunk = new PaletteChunk();
                    paletteChunk.Decode(chunkBytes);
                    palette = paletteChunk.Palette;
                    chunks.Add(paletteChunk);

                    break;

                case "tRNS":

                    var transparencyChunk = new TransparencyChunk();
                    transparencyChunk.Decode(chunkBytes);
                    palette.AddAlphaToColors(transparencyChunk.PaletteTransparencies);
                    break;

                case "IDAT":

                    var dataChunk = new DataChunk();
                    dataChunk.Decode(chunkBytes);
                    dataChunks.Add(dataChunk);

                    break;

                default:
                    break;
            }
        }