我正在使用DSOFile從某些Crystal Reports報告文件獲取摘要屬性。 SummaryProperties.Thumbnail返回一個對象,我需要將該對象轉換爲圖像,以便我可以將其顯示爲我的窗體上的預覽。我試圖將其轉換爲System.Drawing.Image但我收到一個錯誤「ImageConverter無法從System .__ ComObject轉換。」如何將System__ComObject轉換爲圖像?
3
A
回答
3
這可能是一個COM接口的圖像,IPicture或IPictureDisp,可能。您可以使用AxHost.GetPictureFromIPicture或GetPictureFromIPictureDisp靜態方法進行轉換。
0
我最後寫一個小包裝類,什麼工作對我來說:
stdole.IPictureDisp iPictureDisp = row.Parent.Thumbnail;
pictureBox1.Image = IconTools.GetImage(iPictureDisp);
您需要使用AxHost,如由Hans提及。雖然實施起來有點棘手。請注意,您需要使用AxHost.GetPictureFromIPicture
而不是GetPictureFromIPictureDisp
。
關於AxHost.GetPictureFromIPictureDisp:
這種方法不能正常工作。您可以使用 GetPictureFromIPicture方法但是到IPictureDisp對象轉換成圖像,因爲IPictureDisp OLE 接口是IPICTURE接口的子集。
這裏的包裝:
public class IconTools
{
private class IconToolsAxHost : System.Windows.Forms.AxHost
{
private IconToolsAxHost() : base(string.Empty) { }
public static stdole.IPictureDisp GetIPictureDispFromImage(System.Drawing.Image image)
{
return (stdole.IPictureDisp)GetIPictureDispFromPicture(image);
}
public static System.Drawing.Image GetImageFromIPicture(object iPicture)
{
return GetPictureFromIPicture(iPicture);
}
}
public static stdole.IPictureDisp GetIPictureDisp(System.Drawing.Image image)
{
return IconToolsAxHost.GetIPictureDispFromImage(image);
}
public static System.Drawing.Image GetImage(stdole.IPicture iPicture)
{
return IconToolsAxHost.GetImageFromIPicture(iPicture);
}
public static System.Drawing.Image GetImage(stdole.IPictureDisp iPictureDisp)
{
return IconToolsAxHost.GetImageFromIPicture(iPictureDisp);
}
}
+0
這與我最後的結果非常相似。我得到縮略圖對象並將其傳遞給我的IPictureDispHost類。該類實現了一個靜態方法,Image GetPictureFromIPicture(object picture)。 – jac 2012-11-29 15:44:48
相關問題
- 1. 如何將圖像轉換爲位圖
- 2. 如何將圖像轉換爲圖標?
- 3. 如何將位圖轉換爲圖像
- 4. 如何將圖像轉換爲字節[]?
- 5. 如何將IHTMLImgElement轉換爲圖像
- 6. 如何將nsdata轉換爲圖像?
- 7. 如何將報告轉換爲圖像?
- 8. 如何將PDL圖像轉換爲GdkPixbuf
- 9. 如何將CCSprite圖像轉換爲UIImage?
- 10. 如何將WinBioCaptureSample轉換爲圖像
- 11. 如何將PowerPoint轉換爲圖像
- 12. 如何將畫布轉換爲圖像?
- 13. 如何將圖像轉換爲C#base64string
- 14. 如何將Base64(imageurl)轉換爲圖像
- 15. 如何將PDF轉換爲圖像?
- 16. 如何將圖像(BYTE *)轉換爲Base64
- 17. 如何將圖像轉換爲CSS
- 18. 如何將圖像轉換爲ImageSource
- 19. 如何將網頁轉換爲圖像?
- 20. 如何將70dpi圖像轉換爲300dpi?
- 21. 如何將文本轉換爲圖像?
- 22. 如何將圖像轉換爲動畫?
- 23. C#:如何將.pptx轉換爲圖像?
- 24. 如何將圖像轉換爲@ 2x
- 25. 如何將VarBinary值轉換爲圖像?
- 26. 如何將文本轉換爲圖像?
- 27. 如何將LinearLayout轉換爲圖像?
- 28. 如何將HTML轉換爲TIFF圖像?
- 29. 如何將數據轉換爲圖像?
- 30. 如何將UIScrollView轉換爲圖像?
它採取了一些更爲Google找到了我不得不實施AxHost使用GetPictureFromIPicture方法,但我得到了它,謝謝。 – jac 2010-07-27 18:01:30