C#组合了许多图像-WPF图像类
本文关键字:图像 -WPF 许多 组合 | 更新日期: 2023-09-27 17:59:03
你好,我将许多瓦片组合成一个大图像。遵循本指南:http://www.switchonthecode.com/tutorials/combining-images-with-csharp它工作得很好,但前提是最终图像的大小不太大(否则我会得到"参数无效"错误)。。所以我在谷歌上读到我最好使用WPF成像类,但我找不到方法…
有人能给我指一个教程吗?或者告诉我怎么做?
谢谢!!
我知道这是一个老问题,但刚刚在WPF中遇到了这个问题,我找到的解决方案都没有直接回答这个问题,但下面的方法合并了BitmapSource的列表,因此输出图像是列表中图像的最大尺寸:
public static BitmapSource MergeImages(IList<BitmapSource> bmpSrcList) {
int width = 0,height = 0,dpiX = 0,dpiY = 0;
// Get max dimensions and dpi of the images
foreach (var image in bmpSrcList) {
width = Math.Max(image.PixelWidth,width);
height = Math.Max(image.PixelHeight, height);
dpiX = Math.Max((int)image.DpiX, dpiX);
dpiY = Math.Max((int)image.DpiY, dpiY);
}
var renderTargetBitmap = new RenderTargetBitmap(width, height, dpiX, dpiY, PixelFormats.Pbgra32);
var drawingVisual = new DrawingVisual();
using (var drawingContext = drawingVisual.RenderOpen()) {
foreach (var image in bmpSrcList) {
drawingContext.DrawImage(image, new Rect(0, 0, width, height));
}
}
renderTargetBitmap.Render(drawingVisual);
return renderTargetBitmap;
}
这里的第一个答案应该会给你一个想法。。。基本上创建一个组合大小的画布,然后适当地定位"瓷砖"。
在C#/中合并两个图像。NET