Подтвердить что ты не робот

Преобразование BMP в PNG в память для вставки в буфер обмена .Net

Этот похожий вопрос отвечает всем, чтобы файл был сохранен. Тем не менее, я пытаюсь преобразовать файл, а затем скопировать его в буфер обмена.

Как преобразовать Bitmap (или любое изображение) в PNG, не сохраняя его в файловой системе?

Update:
Я пытаюсь вставить изображение в приложение (в данном случае Evernote). Когда вы копируете изображение в буфер обмена (например, через браузер), он запоминает его формат изображения и, когда вы вставляете его, он создает изображение с тем же самым точным форматом. Например, если вы скопируете PNG, он вставляет PNG. Если вы копируете JPG, он вставляет JPG и т.д.

Я пытаюсь взять любое изображение в настоящее время в буфер обмена, масштабировать его до размера, который я хочу, а затем держать его в буфер обмена как PNG, так что когда он вставлен в Evernote, он создаст PNG.

Когда я копирую изображение PNG в своем браузере, я вижу следующие форматы: HTML FORMAT, CF_BITMAP, CF_DIB, CF_DIBV5. Я не уверен, какой из этих Evernote использует для вставки. У меня создалось впечатление, что это было CF_BITMAP, но после прочтения комментариев ниже, я предполагаю, что он использует один из других форматов.

Как разместить изображение в буфере обмена, которое будет обрабатываться как PNG при вставке?

4b9b3361

Ответ 1

Сохраните Bitmap в MemoryStream

byte[] result = null;
using (MemoryStream stream = new MemoryStream())
{
    bitmap.Save(stream, ImageFormat.Png);
    result = stream.ToArray();
}