ホームページ >データベース >mysql チュートリアル >MySQL に BLOB として保存された画像を PictureBox に表示するにはどうすればよいですか?

MySQL に BLOB として保存された画像を PictureBox に表示するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-28 17:55:02544ブラウズ

How to Display an Image Stored as a BLOB in MySQL in a PictureBox?

MySQL から画像を取得して PictureBox に表示する方法

問題:

BLOB として保存された画像の取得MySQL データベース内にあり、PictureBox での表示が正しく機能しません。

解決策:

提供されたコードの問題は、画像の取得が正しくないことにあります。データベース。次の手順は、MySQL データベースからイメージを取得して表示する方法の概要を示しています。

  1. データベース セットアップ:

    • でテーブルを作成します。画像データを BLOB 型として保存する列を持つ MySQL データベース。
  2. PictureBox に画像を表示:

    • byteArrayToImage メソッドで、バイト配列 (ImageByte) を Image オブジェクトに変換します:

      public Image byteArrayToImage(byte[] byteArrayIn)
      {
          using (var ms = new MemoryStream(byteArrayIn))
          {
              return Image.FromStream(ms);
          }
      }
    • photoLoad メソッドで、パラメータ化されたクエリを使用して画像を取得します:

      private void photoLoad()
      {
          // ...
          using (var con = new MySqlConnection(connectionString))
          {
              byte[] ImageByte = new byte[0];
              string query1 = "select image from reg.img_table where id= @id";
              using (var cmd = new MySqlCommand(query1, con))
              {
                  cmd.Parameters.AddWithValue("@id", Properties.Settings.Default.idImg);
                  
                  con.Open();
                  using (var row = cmd.ExecuteReader())
                  {
                      while (row.Read())
                      {
                          ImageByte = (byte[])(row["image"]);
                      }
                  }
              }
      
              if (ImageByte != null)
              {
                  // Convert to an Image object and display in PictureBox
                  roundPictureBox1.Image = byteArrayToImage(ImageByte);
                  roundPictureBox1.Refresh();
              }
          }
          // ...
      }
  3. 追加の考慮事項:

    • 画像がデータベースに正しく保存されていることを確認してください (例: File.ReadAllBytes を使用してイメージ ファイルを読み取ります)。
    • Image オブジェクトに変換する前に、取得したバイト配列 (ImageByte) が空でないかどうかを確認します。
    • 例外を適切に処理します。エラー処理のための photoLoad メソッド内。

以上がMySQL に BLOB として保存された画像を PictureBox に表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。