如何计算WPF中BitmapImage组合的交集区域?

时间:2017-05-24 08:41:05

标签: c# wpf bitmapimage

我正在尝试将两个BitmapImage合并为一个合成图像。但有些部分相互重叠。

var green = new BitmapImage(new Uri(@"C:\temp\green.jpg", UriKind.RelativeOrAbsolute));
var red = new BitmapImage(new Uri(@"C:\temp\red.jpg", UriKind.RelativeOrAbsolute));

var visual = new DrawingVisual();
DrawingImage drawingImageSource;
using (DrawingContext drawingContext = visual.RenderOpen())
{
  DrawingGroup imageDrawings = new DrawingGroup();

  imageDrawings.Children.Add(new ImageDrawing(red, new Rect(0, 0, red.PixelWidth, red.PixelHeight)));
  imageDrawings.Children.Add(new ImageDrawing(green, new Rect(red.PixelWidth - 10, red.PixelHeight - 10, green.PixelWidth, green.PixelHeight)));

  drawingImageSource = new DrawingImage(imageDrawings);

  RenderTargetBitmap bmp = new RenderTargetBitmap(red.PixelWidth + green.PixelWidth - offsetX, red.PixelHeight + green.PixelHeight - offsetY, 96, 96, PixelFormats.Pbgra32);
  bmp.Render(visual);

  //no binding, just my image control to keep it simple
  this.fImage.Source = drawingImageSource;        
}

XAML:

<Grid>
  <Image x:Name="fImage"/>
</Grid>

我想以不同的方式渲染交叉区域,例如混合颜色或基于渐变的过渡。 .NET中是否有一些仪器或我需要处理像素?

0 个答案:

没有答案