Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ASP.NET从SQL Server检索时图像质量下降_C#_Asp.net_Sql Server - Fatal编程技术网

C# 使用ASP.NET从SQL Server检索时图像质量下降

C# 使用ASP.NET从SQL Server检索时图像质量下降,c#,asp.net,sql-server,C#,Asp.net,Sql Server,我正在使用ASP.NET建立一个允许用户上传图像的网页。我使用以下代码将图像转换为图像字节: FileUpload img = (FileUpload)fileUploadLocationPic; Byte[] imgByte = null; string strFileExtension = Path.GetExtension(img.PostedFile.FileName.ToString()); // Create a FILE HttpPostedFile File = fileUpl

我正在使用ASP.NET建立一个允许用户上传图像的网页。我使用以下代码将图像转换为图像字节:

FileUpload img = (FileUpload)fileUploadLocationPic;
Byte[] imgByte = null;
string strFileExtension = Path.GetExtension(img.PostedFile.FileName.ToString());

// Create a FILE
HttpPostedFile File = fileUploadLocationPic.PostedFile;

// Create byte array
imgByte = new Byte[File.ContentLength];

// force control to load data
File.InputStream.Read(imgByte, 0, File.ContentLength);
然后我将
imgByte
保存到SQL Server中。但是当我从SQLServer检索图像字节时,我可以看到图像质量下降了。有人能告诉我如何解决这个问题吗?提前谢谢

编辑: 我显示图像的方式是使用
ashx
处理程序:

        SqlConnection connection = new SqlConnection(connectionString);
        string sql = "SELECT [ChargingBoxLocationImage] FROM [Parking Lot] WHERE [ID] = @PLID";
        SqlCommand cmd = new SqlCommand(sql, connection);
        cmd.CommandType = CommandType.Text;
        cmd.Parameters.AddWithValue("@PLID", PLID);
        connection.Open();
        object img = cmd.ExecuteScalar();
        try
        {
            return new MemoryStream((byte[])img);
        }
然后在
aspx
中,使用

imageChargingLocation.ImageUrl = "~/Editor/ShowImage.ashx?PLID=" + strPLID;


如果放大,可以明显看到差异。

您发布的代码很好,因为您直接从图像复制字节。读取数据并将其发送到客户端的代码是什么样子的


只要不将字节加载到
位图中,然后调用
位图.Save
,代码就不会降低图像质量。

如果是相同的字节序列,质量就不会降低。我建议你在没有意识到的情况下,寻找你转换图像的地方。可能在任何地方,无法从您提供的信息中了解。@zespri我更新了检索图像的方式,请查看,谢谢!它们的文件大小不同。尺寸也不同。(一个是三个像素宽)你在数据库中有多大的尺寸(对于这张图片)?@zespri这是图片的屏幕截图,只是想让你们看到不同的。但是是的,我不应该使用屏幕截图。我会马上编辑它。@zespri当我试图保存检索到的图像时,它实际上不是图像类型,而是ShowImage.ashx类型。这就是原因吗?谢谢你的回复,我用我的方式编辑了我的文章,以显示质量下降的图像。你尝试过什么图像文件类型?我没有看到任何问题。我尝试了jpg类型,因为我希望图像大小小于1mb。