WPF 多张Image复制到剪切板
- 图片源的格式:某些格式的图片可能不受 WPF 的 SetImage 方法支持或处理,从而导致黑色图像。
- 内存限制:WPF 可能无法访问足够的内存来正确处理给定的图像。
- 应用程序权限:应用程序可能没有足够的权限来在剪贴板上执行所需操作。
经过调查,使用Graphics的DrawImage重绘图片时可以避免问题:
Bitmap[] originalImages = new Bitmap[]
{ new Bitmap("Image1.jpg"),
new Bitmap("Image2.jpg"),
new Bitmap("Image3.jpg"),
new Bitmap("Image4.jpg"),
new Bitmap("Image5.jpg"),
new Bitmap("Image6.jpg"),
};
int imageWidth = originalImages[0].Width;
int imageHeight = originalImages[0].Height;
Bitmap targetImage = new Bitmap(imageWidth * 2, imageHeight * 3);
using (Graphics g = Graphics.FromImage(targetImage))
{
int index = 0;
for (int row = 0; row < 3; row++)
{
for (int col = 0; col < 2; col++) { g.DrawImage(originalImages[index], col * imageWidth, row * imageHeight);
index++;
} } }
Clipboard.Clear();
Clipboard.SetDataObject(targetImage);

浙公网安备 33010602011771号