在一个 MySQL 的
将字节数组保存为数据库的中型blob数据。从数据库检索数据时,我将读取器数据强制转换:
MyISAM
表中,我有一个列类型为 mediumblob
,用于存储捕获的图像作为二进制大对象数据。我遇到了一些有趣且问题重重的图像,其中一些图像正在逐渐失去数据。Field type
--------------------------
image mediumblob
my.ini
中设置了最大允许数据包大小为max_allowed_packet = 8M
这是问题所在
当C#
应用程序从服务器获取数据时,这种类型的图像每次都会丢失随机大小的数据。在100000+
张图像数据中,我得到了10-12
张这样的坏图像。
这种行为的原因可能是什么?有没有人有任何想法/解决方案如何修复/避免这个问题。
更新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"];