gpt4 book ai didi

c# - 将字节数组转换为图像 : Parameter is not valid

转载 作者:行者123 更新时间:2023-11-30 15:40:51 27 4
gpt4 key购买 nike

我正在将图像存储在数据库中,并想将它们从字节数组转换为图像。将对象转换为字节数组没有问题,但在尝试从字节数组转换为图像时出现“参数无效”错误。我传递给我的方法的对象来自数据集行。

存储过程

USE [----------------]
GO
/****** Object: StoredProcedure [dbo].[usp_imageloader_add_test] Script Date: 01/16/2012 09:19:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[usp_imageloader_add_test]
@p_Image Image

as

INSERT into Test_Images VALUES(@p_Image)

上传文件控件/将图片文件转为字节数组并存入数据库

 protected void btnUpload_Click(object sender, EventArgs e)
{
if (ctrlUpload.PostedFile != null)
{
if (ctrlUpload.PostedFile.ContentLength > 0)
{
// Get Posted File
HttpPostedFile objHttpPostedFile = ctrlUpload.PostedFile;

// Find its length and convert it to byte array
int ContentLength = objHttpPostedFile.ContentLength;

// Create Byte Array
byte[] bytImg = new byte[ContentLength];

// Read Uploaded file in Byte Array
objHttpPostedFile.InputStream.Read(bytImg, 0, ContentLength);

using (SqlConnection dbConnection = new SqlConnection(app_settings.sql_conn_string_db))
{
try
{
string sql = "usp_imageloader_add_test";
SqlCommand cmd = new SqlCommand(sql, dbConnection);
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@p_Image", bytImg).SqlDbType = SqlDbType.Image;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
}


catch (Exception ex)
{
ex.Message.ToString();
}
}
}
}
}

将对象转换为字节数组和图像

 private System.Drawing.Image ObjToImg(object obj)
{
byte[] byteArray;
if (obj == null)
return null;
else
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
byteArray = ms.ToArray(); // Byte Array
ms.Close();

ms = new MemoryStream(byteArray, 0, byteArray.Length);
ms.Seek(0, SeekOrigin.Begin);
System.Drawing.Image returnImage = System.Drawing.Image.FromStream(ms);
return returnImage;
}

任何想法都会有所帮助。

最佳答案

Image.FromStream 可能会抛出 ArgumentException,因为图像格式无效。期望将随机序列化对象格式化为有效图像是不合理的。

关于c# - 将字节数组转换为图像 : Parameter is not valid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8853253/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com