zoukankan      html  css  js  c++  java
  • Stream/Bytes[]/Image对象相互转化

    Stream/Bytes[]/Image对象相互转化

    Stream转Byte数组、Image转Byte数组、文件转Stream等

    /// <summary>
    /// 将 Stream 转成 byte[]
    /// </summary>
    /// <param name="stream"></param>
    /// <returns></returns>
    public static byte[] StreamToBytes(Stream stream)
    {
        byte[] bytes = new byte[stream.Length];
        stream.Read(bytes, 0, bytes.Length);
        // 设置当前流的位置为流的开始
        stream.Seek(0, SeekOrigin.Begin);
        return bytes;
    }
    将 Stream 转成 byte[]
    /// <summary>
    /// 将 byte[] 转成 Stream
    /// </summary>
    /// <param name="bytes"></param>
    /// <returns></returns>
    public static Stream BytesToStream(byte[] bytes)
    {
        Stream stream = new MemoryStream(bytes);
        return stream;
    }
    byte[] 转成 Stream
    // <summary> 
    /// 字节流转换成图片 
    /// </summary> 
    /// <param name="byt">要转换的字节流</param> 
    /// <returns>转换得到的Image对象</returns> 
    public static Image BytToImg(byte[] byt)
    {
        try
        {
            MemoryStream ms = new MemoryStream(byt);
            Image img = Image.FromStream(ms);
            return img;
        }
        catch (Exception ex)
        {
            LogHelper.WriteError("StreamHelper.BytToImg 异常", ex);
            return null;
        }
    }
    字节流转换成图片
    /// <summary>
    ///  图片转换成字节流 
    /// </summary>
    /// <param name="img"></param>
    /// <returns></returns>
    public static byte[] ImageToByteArray(Image img)
    {
        ImageConverter imgconv = new ImageConverter();
        byte[] b = (byte[])imgconv.ConvertTo(img, typeof(byte[]));
        return b;
    }
    图片转换成字节流
    /// <summary>
    /// 把图片Url转化成Image对象
    /// </summary>
    /// <param name="imageUrl"></param>
    /// <returns></returns>
    public static Image Url2Img(string imageUrl)
    {
        try
        {
            if (string.IsNullOrEmpty(imageUrl))
            {
                return null;
            }
    
            WebRequest webreq = WebRequest.Create(imageUrl);
            WebResponse webres = webreq.GetResponse();
            Stream stream = webres.GetResponseStream();
            Image image;
            image = Image.FromStream(stream);
            stream.Close();
    
            return image;
        }
        catch (Exception ex)
        {
            LogHelper.WriteError("StreamHelper.Url2Img 异常", ex);
        }
    
        return null;
    }
    把图片Url转化成Image对象
    /// <summary>
    /// 把本地图片路径转成Image对象
    /// </summary>
    /// <param name="imagePath"></param>
    /// <returns></returns>
    public static Image ImagePath2Img(string imagePath)
    {
        try
        {
            if (string.IsNullOrEmpty(imagePath))
            {
                return null;
            }
    
            byte[] bytes = Image2ByteWithPath(imagePath);
            Image image = BytToImg(bytes);
            return image;
        }
        catch (Exception ex)
        {
            LogHelper.WriteError("StreamHelper.ImagePath2Img 异常", ex);
            return null;
        }
    }
    把图片Url转化成Image对象

    转自:

    作者:樊勇 
    出处:http://www.cnblogs.com/fanyong/ 

  • 相关阅读:
    leetcode--Recover Binary Search Tree
    leetcode--Construct Binary Tree from Preorder and Inorder Traversal
    leetcode---Construct Binary Tree from Inorder and Postorder Traversal
    leetcode---Trapping Rain Water
    leetcode--Balanced Binary Tree
    leetcode--Clone Graph
    leetcode--Longest Consecutive Sequence
    leetcode --Jump Game
    计算机组成原理 8 中断和异常
    计算机网络 5.6-5.8 TCP/UDP
  • 原文地址:https://www.cnblogs.com/nov5026/p/4885754.html
Copyright © 2011-2022 走看看