Найти тип изображения в буфере обмена - PullRequest
1 голос
/ 23 июля 2010

У меня есть изображение, скопированное в панель управления из слова с помощью «Comment.Scope.CopyAsPicture ()». Как я могу найти тип этого изображения в буфере обмена, чтобы я мог записать изображение с соответствующим расширением в локальный файлсистема

Ответы [ 2 ]

4 голосов
/ 23 июля 2010

В DataFromats у нас есть только растровый элемент ...

обычно вы выбираете формат для хранения

IDataObject data = Clipboard.GetDataObject();

if (data.GetDataPresent(DataFormats.Bitmap))
{
  Bitmap bitmap = (data.GetData(DataFormats.Bitmap,true) as Bitmap);

  bitmap.Save("image.bmp",System.Drawing.Imaging.ImageFormat.Bmp);
  bitmap.Save("image.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);

}

, но вы можете создать свой собственный формат и использоватьэто

DataFormats.Format jepgFormat = DataFormats.GetFormat("jpgFormat");

Image image = new Image(); 
DataObject myDataObject = new DataObject(jpegFormat.Name, image );

// Copies myObject into the clipboard.
Clipboard.SetDataObject(myDataObject);
1 голос
/ 23 июля 2010

Используя DataFormats.Bitmap, вы можете получить это как растровое изображение и использовать функции инфраструктуры для его сохранения.

if (iData.GetDataPresent(DataFormats.Bitmap)) Bitmap bImg = (Bitmap)iData.GetData();

...