我正在使用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. 如何将PDL图像转换为GdkPixbuf
- 4. 如何将图像(BYTE *)转换为Base64
- 5. 如何将VarBinary值转换为图像?
- 6. 如何将PowerPoint转换为图像
- 7. 如何将图像转换为纹身?
- 8. C#:如何将.pptx转换为图像?
- 9. 如何将图像转换为CSS
- 10. 如何将文本转换为图像?
- 11. 如何将网页转换为图像?
- 12. 如何将UIScrollView转换为图像?
- 13. 如何将文本转换为图像?
- 14. 如何将PDF转换为图像?
- 15. 如何将Uri图像转换为Base64?
- 16. 如何将数据转换为图像?
- 17. 如何将图像转换为@ 2x
- 18. 如何将nsdata转换为图像?
- 19. 如何将画布转换为图像?
- 20. 如何将图像转换为ImageSource
- 21. 如何将.Jpeg图像转换为.Bmp
- 22. 如何将图像转换为Redscale?
- 23. 如何图像刷转换为图像
- 24. 将PDF转换为图像
- 25. 将varbinary转换为图像
- 26. 将HTML转换为图像
- 27. 将图像转换为JSON
- 28. 将Blob转换为图像
- 29. 将Android.Graphics.Bitmap转换为图像
- 30. 将HtmlElement转换为图像?
它采取了一些更为Google找到了我不得不实施AxHost使用GetPictureFromIPicture方法,但我得到了它,谢谢。 – jac 2010-07-27 18:01:30