示例#1
0
 private void _CreateFireGenerator()
 {
     lock (_fireGenLock)
     {
         BitmapSource image = Source;
         if (image == null)
         {
             _fireGenerator = null;
             return;
         }
         int imageSize = image.PixelWidth * image.PixelHeight;
         int stride = image.PixelWidth * 4;
         _fireGenerator = new FireGenerator(image.PixelWidth, image.PixelHeight);
         byte[] baseImage = new byte[stride * image.PixelHeight];
         image.CopyPixels(baseImage, stride, 0);
         for (int i = 0; i < imageSize; i++)
         {
             _fireGenerator.BaseAlphaChannel[i] = baseImage[i * 4 + 3];
         }
     }
 }