苏飞论坛

标题: C#byte怎么转成图片 [打印本页]

作者: 站长苏飞    时间: 2013-1-12 15:02
标题: C#byte怎么转成图片
这个其实很简单我给大家提供一个方法吧
[C#] 纯文本查看 复制代码
/// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            using (MemoryStream ms = new MemoryStream(Bytes))
            {
                Image outputImg = Image.FromStream(ms);
                return outputImg;
            }
        }

使用方法也很简单
如下
如果我们有一个图片控件的话可以这样写
[C#] 纯文本查看 复制代码
 pictureBox1.Image = byteArrayToImage(result.ResultByte);

这样就行了。
因为byteArrayToImage返回的是个Image类型,所以可以直接赋值给pictureBox1的Image 属性。
如果你的是Gif图片的话需要这样解决

[C#] 纯文本查看 复制代码
/// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            using (MemoryStream ms = new MemoryStream(Bytes))
            {
                Image outputImg = Image.FromStream(ms);
                return outputImg;
            }
        }

换成下面的就行了
[C#] 纯文本查看 复制代码
/// <summary>
        /// 字节数组生成图片
        /// </summary>
        /// <param name="Bytes">字节数组</param>
        /// <returns>图片</returns>
        private Image byteArrayToImage(byte[] Bytes)
        {
            MemoryStream ms = new MemoryStream(Bytes);
            Image outputImg = Image.FromStream(ms);
            return outputImg;
        }




作者: 火山飞雪    时间: 2013-3-15 16:20
顶一个。转
作者: yyhapy    时间: 2013-4-28 23:25
受教了,学习中……  这个貌似可以把验证码显示出来哦
作者: 站长苏飞    时间: 2013-4-29 07:23
yyhapy 发表于 2013-4-28 23:25
受教了,学习中……  这个貌似可以把验证码显示出来哦

是的,起初的目的就是为了显示验证码
作者: duoge007    时间: 2013-7-23 13:47
为什么Gif图片 不能用using 了呢?

作者: huoshan12345    时间: 2014-1-21 15:24
这两种方法有什么区别吗
using的问题?
作者: 站长苏飞    时间: 2014-1-21 16:02
huoshan12345 发表于 2014-1-21 15:24
这两种方法有什么区别吗
using的问题?

区别我不是写了吗?在获取Gif的时候需要用下面的
作者: huoshan12345    时间: 2014-1-21 16:17
站长苏飞 发表于 2014-1-21 16:02
区别我不是写了吗?在获取Gif的时候需要用下面的

我的意思是,一个用using,一个不用using
这样会带来什么不同?
为啥后者能用于gif
作者: kyozy    时间: 2014-1-22 18:25
using 我们都知道是什么意思,但是为什么GIF就不using?
作者: 站长苏飞    时间: 2014-1-23 08:25
kyozy 发表于 2014-1-22 18:25
using 我们都知道是什么意思,但是为什么GIF就不using?

看来你还是不太懂Using啊,建议百度一下。Using会自动打开和关闭MemoryStream,动态的在Gdi+里是会报错的,这这几行代码,你一测试就明白了。
作者: kyozy    时间: 2014-1-24 14:34
站长苏飞 发表于 2014-1-23 08:25
看来你还是不太懂Using啊,建议百度一下。Using会自动打开和关闭MemoryStream,动态的在Gdi+里是会报错的 ...

我就是知道using 会自动打开和关闭,但是我不知道和GIF图像有什么关系
作者: kyozy    时间: 2014-1-24 14:38
using() 会自动调用IDisposable 接口里面的 Dispose 方法,这样就不用每次都手动 Dispose 了,这个我还是知道的
作者: 站长苏飞    时间: 2014-1-24 14:42
kyozy 发表于 2014-1-24 14:38
using() 会自动调用IDisposable 接口里面的 Dispose 方法,这样就不用每次都手动 Dispose 了,这个我还是知 ...

对啊,你资源都释放了,还动什么啊,肯定会报Gdi+错误的。
作者: cyclone77    时间: 2014-7-25 17:55
MS参数无效
作者: 站长苏飞    时间: 2014-7-25 17:58
cyclone77 发表于 2014-7-25 17:55
MS参数无效

?贴下你的代码看看,应该是图片格式 对,或者是获取有损失
作者: 学无止境    时间: 2014-8-17 14:20
受教了,学习中……
作者: mingsn    时间: 2016-9-21 10:38
看到这帖子真是高兴!




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4