Ответы на этот аналогичный вопрос требуют сохранения файла. Однако я пытаюсь преобразовать файл и затем скопировать его в буфер обмена.
Как преобразовать растровое изображение (или любое изображение) в PNG, не сохраняя его в файловой системе?
Обновление:
Я пытаюсь вставить изображение в приложение (в данном случае Evernote). Когда вы копируете изображение в буфер обмена (например, через браузер), оно запоминает свой формат изображения, а когда вы вставляете его, оно создает изображение с таким же точным форматом. Например, если вы скопируете PNG, он вставит PNG. Если вы скопируете JPG, он вставит JPG и т. Д.
Я пытаюсь взять любое изображение, находящееся в данный момент в буфере обмена, масштабировать до нужного мне размера, а затем сохранить его в буфере обмена как PNG, например что, когда он будет вставлен в Evernote, он создаст PNG.
Когда я копирую изображение PNG в своем браузере, я вижу следующие форматы: ФОРМАТ HTML
, CF_BITMAP
, CF_DIB
, CF_DIBV5
. Я не уверен, какой из этих Evernote использует для вставки. У меня сложилось впечатление, что это был CF_BITMAP
, но после прочтения комментариев ниже, я думаю, он использует один из других форматов.
Как я могу поместить изображение в буфер обмена, который будет рассматриваться как PNG при вставке?
Сохраните Bitmap в MemoryStream
byte[] result = null;
using (MemoryStream stream = new MemoryStream())
{
bitmap.Save(stream, ImageFormat.Png);
result = stream.ToArray();
}