问题描述
最近在做项目的时候,需要有一个验证码登录的功能,验证码是通过接口获取的网络图像,response获取到的是Stream类型的数据,我们需要将其转换成BitmapImage来赋值给Image控件的Source。中间试了好多种方法,但是出现了很多问题,要么是生命周期的原因使得验证码一闪而过,要么出现类型转换错误。
最后经过广泛的查阅,终于找到了一种解决方案。
解决方案
将接收到的Stream类型流文件赋值给System.Drawing.Image(img)类对象,使用img构建Bitmap对象,再将Bitmap对象转换为BitmapImage对象,最后将BitmapImage对象赋值给Image控件的Source。
代码
private BitmapImage BitmapToBitmapImage(Bitmap bitmap)
{
Bitmap bitmapSource = new Bitmap(bitmap.Width, bitmap.Height);
int i, j;
for (i = 0; i < bitmap.Width; i++)
for (j =