示例#1
0
        private static Color[] ScalePSMCT32PixelsToFullAlphaRange(Color[] colors)
        {
            int colorCount = colors.Length;

            Color[] scaledColors = new Color[colorCount];

            for (int c = 0; c < colorCount; c++)
            {
                scaledColors[c] = Color.FromArgb(
                    PS2PixelFormatHelper.ScaleHalfRangeAlphaToFullRange(colors[c].A),
                    colors[c].R,
                    colors[c].G,
                    colors[c].B);
            }

            return(scaledColors);
        }
示例#2
0
        public Color[] GetPixels()
        {
            if (IsIndexed && mRasterStructNode.DataStructNode.Pixels == null)
            {
                mRasterStructNode.DataStructNode.Pixels = new Color[Width * Height];
                for (int y = 0; y < Height; y++)
                {
                    for (int x = 0; x < Width; x++)
                    {
                        var color = Palette[PixelIndices[x + y * Width]];
                        mRasterStructNode.DataStructNode.Pixels[x + y * Width] =
                            Color.FromArgb(PS2PixelFormatHelper.ScaleHalfRangeAlphaToFullRange(color.A), color.R, color.G, color.B);
                    }
                }
            }

            return(mRasterStructNode.DataStructNode.Pixels);
        }
示例#3
0
        /// <summary>
        /// <para>Construct a bitmap from the data in this instance.</para>
        /// <para>Subsequent calls to this method will return the same bitmap instance without constructing a new one.</para>
        /// </summary>
        public Bitmap GetBitmap()
        {
            if (mBitmap != null)
            {
                return(mBitmap);
            }

            if (IsIndexed)
            {
                mBitmap =
                    BitmapHelper.Create(Palette.Select(x => Color.FromArgb(PS2PixelFormatHelper.ScaleHalfRangeAlphaToFullRange(x.A), x.R, x.G, x.B)).ToArray(),
                                        PixelIndices, Width, Height);
            }
            else
            {
                mBitmap =
                    BitmapHelper.Create(Pixels.Select(x => Color.FromArgb(PS2PixelFormatHelper.ScaleHalfRangeAlphaToFullRange(x.A), x.R, x.G, x.B)).ToArray(),
                                        Width, Height);
            }

            return(mBitmap);
        }