c# .net image-processing clipboard in-memory

c# - Convierta BMP a PNG en la memoria para pegar en el Portapapeles en.Net



image-processing clipboard (1)

Guardar el Bitmap de Bitmap en un MemoryStream

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

Las respuestas de esta pregunta similar requieren que el archivo se guarde. Sin embargo, estoy intentando convertir el archivo y luego copiarlo en el portapapeles.

¿Cómo puedo convertir un mapa de bits (o cualquier imagen) a un PNG sin guardarlo en el sistema de archivos?

Actualizar:
Estoy tratando de pegar la imagen en una aplicación (en este caso Evernote). Cuando copia una imagen en el portapapeles (por ejemplo, a través del navegador), recuerda su formato de imagen y cuando la pega, creará una imagen con el mismo formato exacto. Por ejemplo, si copia un PNG, pegará un PNG. Si copia un archivo JPG, se pegará un archivo JPG, etc.

Estoy tratando de tomar cualquier imagen que esté actualmente en el portapapeles, escalarla al tamaño que desee y luego mantenerla en el portapapeles como PNG, de modo que cuando se pegue en Evernote, se cree un PNG.

Cuando copio una imagen PNG en mi navegador, veo los siguientes formatos: HTML FORMAT , CF_BITMAP , CF_DIB , CF_DIBV5 . No estoy seguro de cuál de estos Evernote está utilizando para pegar. Tenía la impresión de que era CF_BITMAP , pero después de leer los comentarios a continuación, creo que está usando uno de los otros formatos.

¿Cómo puedo colocar una imagen en el portapapeles que se tratará como un PNG cuando se pegue?