BattleInfoPlugin.Models.Repositories.MapResourceExtensions.AlphaBlending C# (CSharp) Метод

AlphaBlending() приватный статический Метод

private static AlphaBlending ( System.Windows.Media.Imaging.BitmapSource bitmap, byte alphaData ) : System.Windows.Media.Imaging.BitmapSource
bitmap System.Windows.Media.Imaging.BitmapSource
alphaData byte
Результат System.Windows.Media.Imaging.BitmapSource
        private static BitmapSource AlphaBlending(BitmapSource bitmap, byte[] alphaData)
        {
            var pixelCount = (uint)(bitmap.Width * bitmap.Height);
            var bmp = new WriteableBitmap(new FormatConvertedBitmap(bitmap, PixelFormats.Bgra32, null, 0));
            var bytes = new byte[pixelCount * 4];
            var rect = new Int32Rect(0, 0, (int)bmp.Width, (int)bmp.Height);
            bmp.CopyPixels(rect, bytes, bmp.BackBufferStride, 0);
            for (var i = 0; i < alphaData.Length; i++)
            {
                bytes[i * 4 + 3] = alphaData[i];
            }
            bmp.WritePixels(rect, bytes, bmp.BackBufferStride, 0);
            return bmp;
        }