mysqlMyISAM
テーブルには、列タイプがmediumblob
あり、キャプチャされた画像をblobデータとして保存しています。面白くて問題のある画像がいくつかありました。一部の画像はgradually losing
データです。
Field type
--------------------------
image mediumblob
my.ini
設定された最大許容パケットサイズmax_allowed_packet = 8M
これが問題です
アプリケーションがサーバーからデータをフェッチするC#
と、この種の画像は毎回ランダムなサイズのデータを失います。10-12
このような悪い画像が画像100000+
データに含まれています。
この種の行動の理由は何でしょうか?誰もがこの問題を修正/回避する方法についてのアイデア/解決策を持っています。
更新1:
PictureBoxからバイトを読み取る
MemoryStream ms = new MemoryStream();
byte[] ret = null;
try
{
picturebox.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
byte[] Data = new byte[ms.Length];
ms.Read(Data, 0, (int)ms.Length);
ret = byteData;
ms.Close();
}
バイト配列を中程度のBLOBデータとしてデータベースに保存します。データベースからデータを取得するとき、リーダーデータをキャストしています。
byte[] Data = (byte[])reader["Image"];