时候我们需要在内存中转换Image格式到Icon
根据经验通常我们应该可以这样做
Image image = xxxx;///假设这里已经有一个Image对象
SystemIOMemoryStream mStream = new SystemIOMemoryStream()///创建内存流
imageSave(mStream SystemDrawingImagingImageFormatIcon)
Icon icon = IconFromHandle(new Bitmap(mStream)GetHicon())
mStreamClose()
但这里在imageSave的时候会报告错误空对象引用
于是我改变保存的格式为BitmapJpeg等这样就没有错误了(说明不能在内存中直接保存为Icon格式)
但是这样的话取得的Icon将会去掉原图片中的透明信息
一个个格式的试验我们可以发现保存为Gif格式的时候还可以保留透明信息哈哈终于找到
但这里还有值得注意的就是在成功取得内存流后不能直接用Icon构造一定要用Bitmap转否则也会报错
Icon icon = new Icon(mStream)//这种方式将报错