2014-03-14 47 views
0

我有一個裝有圖標的BitmapImage對象,我需要將它轉換爲StdPicture。我怎麼做 ?如何將BitmapImage轉換爲StdPicture

我發現了很多關於如何將System.Drawing.Image轉換爲StdPicture的例子,但是對於System.Windows.Media.Imaging.BitmapImage轉換爲StdPicture沒有任何幫助。

我必須首先將它轉換爲Winforms圖像,然後轉換爲StdPicture?聽起來有點傻了。

+0

這是一個古老的COM對象,OleCreateIPictureDispIndirect()輔助函數甚至沒有記錄。看到它與BitmapImage一起使用的程序有點像觀看人與恐龍的電影​​,這是一個不合時宜的時代。將BitmapImage保存到一個文件與其獲得的實用性大致相同。 –

+0

@HansPassant我有大約40個圖像加載程序啓動。我有一個VS shell項目,期望StdPicture對象,但我有BitmapImage。 – fahadash

回答

0

我假設stdPicture你的意思是位圖..所以,我們走了。

private Bitmap BitmapImageToBitmap(BitmapImage bitmapImage) 
{ 
    using (MemoryStream os = new MemoryStream()) 
    { 
     BitmapEncoder encoder = new BmpBitmapEncoder(); 
     encoder.Frames.Add(BitmapFrame.Create(bitmapImage)); 
     encoder.Save(os); 
     System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(os); 

     return new Bitmap(bitmap); 
    } 
} 
相關問題