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

Ответы на этот аналогичный вопрос требуют сохранения файла. Однако я пытаюсь преобразовать файл и затем скопировать его в буфер обмена.

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

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

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

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

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

21
задан Community 23 May 2017 в 12:32
поделиться

1 ответ

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

byte[] result = null;
using (MemoryStream stream = new MemoryStream())
{
    bitmap.Save(stream, ImageFormat.Png);
    result = stream.ToArray();
}
29
ответ дан 29 November 2019 в 21:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: