图片代码操作:

根据图片的相对路径 获取Image对象:

  /// <summary>
    /// 根据图片的相对路径 获取Image对象
    /// </summary>
    /// <param name="imgPath">图片的相对路径(如:@"/images/star.png")</param>
    /// <returns></returns>
    public static Image GetImage(string imgPath)
    {
        if (File.Exists(imgPath))
        {
            Image im = new Image();
            im.Source = GetBitmapImage(imgPath);
            return im;
        }
        else
            return null;
    }

根据图片的相对路径 返回 BitmapImage对象的实例化:

    /// <summary>
    /// 根据图片的相对路径 返回 BitmapImage对象的实例化
    /// </summary>
    /// <param name="imgPath">图片的相对路径(如:@"/images/star.png")</param>
    /// <returns></returns>
    public static BitmapImage GetBitmapImage(string imgPath)
    {
        try
        {
            if (!imgPath.StartsWith("/"))
            {
                imgPath = "/" + imgPath;
            }
            return new BitmapImage(new Uri("Pack://application:,,," + imgPath));
        }
        catch
        {
            return EmptyImageSource;
        }
    }

根据图片的相对路径 获取ImageBrush对象:

  /// <summary>
  /// 根据图片的相对路径 获取ImageBrush对象 (此对象资源可以直接用于绑定控件的Background属性)
  /// </summary>
  /// <param name="imgPath">图片的相对路径(如:@"/images/star.png")</param>
  /// <returns></returns>
    public static ImageBrush GetImageBrush(string imgPath)
    {
        if (File.Exists(imgPath))
        {
            ImageBrush ib = new ImageBrush();
            ib.ImageSource = GetBitmapImage(imgPath);
            return ib;
        }
        else
            return null;
    }

在Path中读取图片byte[]:

    /// <summary>
    /// 根据图片的路径解析成图片资源
    /// </summary>
    /// <param name="filePath"></param>
    /// <returns></returns>
    public static byte[] BitmapImageToByteArray(String filePath)
    {

        byte[] byteArray = null ;
        if(File.Exists(filePath))
            byteArray = File.ReadAllBytes(filePath);
        return byteArray;
    }

byte[]转BitmapImage:

    /// <summary>
    /// 解析字节数组成图片
    /// </summary>
    /// <param name="byteArray"></param>
    /// <returns></returns>
    public static BitmapImage ByteArrayToBitmapImage(byte[] byteArray)
    {
        BitmapImage bmp = null;
        try
        {
            bmp = new BitmapImage();
            bmp.BeginInit();
            bmp.StreamSource = new MemoryStream(byteArray);
            bmp.EndInit();
        }
        catch
        {
            bmp = null;
        }
        return bmp;
    }

BitmapImage转byte[]:

    /// <summary>
    /// 图片数据解析成字节流数组(用于存储到数据库)
    /// </summary>
    /// <param name="bmp"></param>
    /// <returns></returns>
    public static byte[] BitmapImageToByteArray(BitmapImage bmp)
    {
        byte[] byteArray = null;
        try
        {
            Stream sMarket = bmp.StreamSource;
            if (sMarket != null && sMarket.Length > 0)
            {
                sMarket.Position = 0;
                using (BinaryReader br = new BinaryReader(sMarket))
                {
                    byteArray = br.ReadBytes((int)sMarket.Length);
                }
            }
        }
        catch
        {
        }
        return byteArray;
    }

Stream保存图片:

FileStream fs = new FileStream("A.jpg", FileMode.Create, FileAccess.ReadWrite);
Stream MyStream = new MemoryStream((byte[])imageBytes); //取出的byte[]数组
int read = 0;
byte[] Mybyte = new byte[1024];
do
{

  read = MyStream.Read(Mybyte,0,1024);
  fs.Write(Mybyte,0,read);

} while (read > 0);
MyStream.Flush();
MyStream.Close();
fs.Flush();
fs.Close();
图片通过CGI获取保存到本地快照:

    public string Address = "url address";
    public void SavefromWeb()
    {
        FileStream fs = new FileStream("D:\\Image.jpg",FileMode.Create,FileAccess.ReadWrite);
        HttpWebRequest MyHttpWebRequest = null;
        HttpWebResponse MyHttpWebResponse = null;
        Stream MyStream = null;
        try
        {
            MyHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(Address);
            MyHttpWebResponse = (HttpWebResponse)MyHttpWebRequest.GetResponse();
            MyStream = MyHttpWebResponse.GetResponseStream();
        }
        catch(Exception)
        {
        }
        int read = 0;
        byte[] Mybyte=new byte[1024];
        do
        {
            read = MyStream.Read(Mybyte,0,1024);
            fs.Write(Mybyte,0,read);
        }while(read>0);
        MyStream.Flush();
        MyStream.Close();
        MyHttpWebResponse.Close();
        fs.Flush();
        fs.Close();
    }