ネットワークとpicturboxに表示される画像を取得し、バイトが[]配列を画像に変換します

コードをコピー
   プライベートボイドgetWebPicture_Click(オブジェクト送信者、のEventArgs電子)
        { 
            WebRequestクラスリクエスト= WebRequest.Create( "http://d.hiphotos.baidu.com/image/h%3D200/sign=6008b360f336afc3110c38658318eb85/a1ec08fa513d26973aa9f6fd51fbb2fb4316d81c.jpg")。
            WebResponse応答= request.GetResponse()。
            ストリームS = response.GetResponseStream()。
            バイト[]データ=新しいバイト[1024]; 
            INT長= 0。
            MemoryStreamをミリ秒=新規のMemoryStream()。
            一方、((長さ= s.Read(データ、0、data.Length))> 0)
            { 
                ms.Write(データ、0、長さ)。
            }  
            ms.Seek(0、SeekOrigin.Begin)。
            pictureBox1.Image = Image.FromStream(MS)。
         }
コードをコピー

バイト[]配列は、画像に変換されます。

コードをコピー
   プライベートバイト[] ImageTobyteshuzu(イメージ画像)
        { 
            MemoryStreamをミリ秒=新規のMemoryStream()。
            ビットマップBI =新しいビットマップ(画像)。
            bi.Save(MS、image.RawFormat)。
            バイト[]データ=新しいバイト[ms.Length]。
            ms.Seek(0、SeekOrigin.Begin)。
            ms.Read(データ、0、data.Length)。
            データを返します。
        }
コードをコピー

画像は、バイト[]配列に変換します:

コードをコピー
     プライベートイメージbyteshuzuToImage(バイト[] imageBytes)
        { 
            MemoryStreamをミリ秒=新規のMemoryStream()。
            ms.Write(imageBytes、0、imageBytes.Length)。
            ms.Seek(0、SeekOrigin.Begin)。
            画像I = Image.FromStream(ミリ秒)。
            私は返します。
        }
コードをコピー

最後に、memeoryStream書き込みの使用についての話や将来の方法は、最初の場所に戻って最高のストリームポインタを取る必要があります読ん!!!私はいつもの変換は、長い時間のために、この問題のため、問題を抱え失敗!!!このブログを書いて、統合するためです。

WPF:データベースにIV1ネットワーク上の画像を取得し、データベースから読み込まれ、画像上に表示されます:

コードをコピー
        プライベート無効Button_Click_2(オブジェクト送信者、RoutedEventArgs e)の
        { 
            場合(iv1.Source = nullを!)
            { 
                BitmapImageのBI =(BitmapImageの)iv1.Source。
                ストリームS = bi.StreamSource。
                s.Seek(0、SeekOrigin.Begin)。
                バイト[]データ=新しいバイト[s.Length]。
                s.Read(データ、0、data.Length)。
                saveImageToSqlServer(データ)。
                getImageFromSqlServer(); 
            } 
            他
            { 
                MessageBox.Show( "请先获取图片!"); 
            } 
        }
コードをコピー

データベースに保存されました:

コードをコピー
        プライベートボイドsaveImageToSqlServer(バイト[]データ)
        { 
            SqlConnectionのCONN =新しいSqlConnectionオブジェクト(のconnectString)。
            conn.Open(); 
            SqlCommandオブジェクトCOMM =新しいSqlCommandオブジェクト(); 
            comm.Connection = CONN。
            comm.CommandText =「TB1から削除」。
            comm.ExecuteNonQuery(); 
            comm.Connection = CONN。
            comm.CommandText = "TB1に挿入(画像)の値(@Image)"; //注意这里要加@Image 
            comm.Parameters.Add( "@イメージ"、System.Data.SqlDbType.Image、data.Length)。
            comm.Parameters [0] .Valueの=データ。
            comm.ExecuteNonQuery(); 
            conn.close(); 
        }
コードをコピー

データベースからの読み込み:

コードをコピー
        プライベート無効getImageFromSqlServer()
        { 
            SqlDataAdapterオブジェクトのsdaには、=新しいSqlDataAdapterオブジェクト( "TB1から選択*"、のconnectString)。
            DataTable dtを=新しいのDataTable(); 
            sda.Fill(DT)。
            バイト[]データ=(バイト[])dt.Rows [0] [1]。
            MemoryStreamをミリ秒=新規のMemoryStream()。
            ms.Write(データ、0、data.Length)。
            ms.Seek(0、SeekOrigin.Begin)。
            BitmapImageの双方向=新しいBitmapImageの(); 
            bi.BeginInit(); 
            bi.StreamSource = MS】
            bi.EndInit(); 
            iv2.Source =双方向; 
        }
コードをコピー

 

おすすめ

転載: www.cnblogs.com/macT/p/11579434.html