繁体   English   中英

当我从sql server 2008 r2检索图像时,图像为黑色

[英]When I retrieve image from sql server 2008 r2 the image is black

我已经写了一个程序,我上传和下载图像到数据库SQL Server 2008 R2 我使用以下代码上传图片:

SqlParameter picparameter = new SqlParameter();

            picparameter.SqlDbType = System.Data.SqlDbType.Image;

        picparameter.ParameterName = "value";

        picparameter.Value = val;//val is a byte array

        SqlCommand sqlcommand = new SqlCommand("update " + table + " set " + col + " = @value "+" where "+where, sqlconnection);
        sqlcommand.Parameters.Add(picparameter);
        sqlcommand.ExecuteNonQuery();

我使用以下代码将图像从PictureBox转换为数组:

 public static byte[] ImageToByteArray(System.Drawing.Image img)
    {
        System.IO.MemoryStream ms = new System.IO.MemoryStream();
        Bitmap b = new Bitmap(img);
        b.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        return ms.ToArray();
    }

然后我使用以下代码将图像从数据库下载到硬盘:

Byte[] data = new Byte[0];
data = (Byte[])(imageReader["image"]);
MemoryStream mem = new MemoryStream(data);
Image.FromStream(mem).Save(Application.StartupPath + "\\Temp\\img\\" +imageReader["code"].ToString() + ".png",
System.Drawing.Imaging.ImageFormat.Png);

但是,我有一个很大的问题,在将数据库保存到硬盘后,背景图像会变黑。

这是我将其上传到数据库的图像这是我从数据库下载的图像

你保存为jpeg:

b.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

但加载为png:

Image.FromStream(mem).Save(..., ImageFormat.Png);

不是100%肯定这是你的问题,但它看起来有问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM