C# WPF图像。源和透明图形

C# WPF图像。源和透明图形,c#,wpf,image,bitmapimage,C#,Wpf,Image,Bitmapimage,我正在创建一个可以有一些图像的视觉效果。如果我使用普通的非透明Png图像,它在性能和打印方面工作得很好,但是一旦我更换了一个透明Png,它就会变得非常慢,并且在打印视觉效果时也会花费3倍多的时间。 我正在使用以下代码 var source = new Uri(filePath, UriKind.RelativeOrAbsolute); BitmapImage imageBitMap =new BitmapImage(source); var pictureImage

我正在创建一个可以有一些图像的视觉效果。如果我使用普通的非透明Png图像,它在性能和打印方面工作得很好,但是一旦我更换了一个透明Png,它就会变得非常慢,并且在打印视觉效果时也会花费3倍多的时间。 我正在使用以下代码

  var source = new Uri(filePath, UriKind.RelativeOrAbsolute);

  BitmapImage imageBitMap =new BitmapImage(source);

        var pictureImage = new Image();

        pictureImage.Source = imageBitMap;
        grid.Children.Add(pictureImage);
我使用了ANTS性能分析器,下面是统计数据

使用4个非Transparent图形(每个大约50-100KB),每个图形的平均渲染时间为10ms。 很快,我用等效的透明图形替换其中一个,每个图形的平均时间迅速上升,上升到34毫秒

你知道为什么透明图形需要这么长时间吗?我该如何减少它

我尝试使用Adobe Illustrator和InkSpace将TranPang转换为xaml,但没有成功。 Adobe Illustrator插件将png转换为1KB xaml文件,其中包含一个带有viewbox的空画布。 InkSpace正在将整个图像转换为base64字符串,并将其设置为图像标记的源,但这根本不会显示在视觉中