22

这个类似问题的答案都需要保存文件。但是,我正在尝试转换文件,然后将其复制到剪贴板。

如何将位图(或任何图像)转换为 PNG 而不将其保存到文件系统?

更新:
我正在尝试将图像粘贴到应用程序中(在本例中为 Evernote)。当您将图像复制到剪贴板(例如通过浏览器)时,它会记住其图像格式,当您将其粘贴到剪贴板时,它将创建具有相同格式的图像。例如,如果您复制 PNG,它将粘贴 PNG。如果您复制 JPG,它将粘贴 JPG 等。

我正在尝试获取剪贴板中当前的任何图像,将其缩放到我想要的大小,然后将其作为 PNG 保存在剪贴板中,这样当它粘贴到 Evernote 时,它​​将创建一个 PNG。

当我在浏览器中复制 PNG 图像时,我看到以下格式:HTML FORMAT, CF_BITMAP, CF_DIB, CF_DIBV5. 我不确定哪些 Evernote 用于粘贴。我的印象是CF_BITMAP,但在阅读了下面的评论后,我猜它使用的是其他格式之一。

如何将图像放置在剪贴板中,粘贴时将被视为 PNG?

4

1 回答 1

33

将位图保存到MemoryStream

byte[] result = null;
using (MemoryStream stream = new MemoryStream())
{
    bitmap.Save(stream, ImageFormat.Png);
    result = stream.ToArray();
}
于 2010-08-19T01:03:01.323 回答