1

我正在尝试将图像文件夹中的图像和图像名称defaultImage转换为我的数据库表。

但是现在我在这行代码中遇到了问题:

我使用以下代码更改代码:

Image uploaded6 = Image.FromFile("/image/defaultImage.jpg");

而不是这个:

System.Drawing.Image uploaded = System.Drawing.Image.FromStream(〜/图像/默认图像);

我现在得到的错误FileNotFoundException was unhandled by user code

我已经使用文件上传控件尝试过这种方法,它工作正常,但不知道如何转换文件夹中的图像。

如何从文件夹中获取图像以便使用下面显示的方法进行转换。

Image uploaded6 = Image.FromFile("/image/defaultImage.jpg");

//System.Drawing.Image uploaded = System.Drawing.Image.FromStream();

System.Drawing.Image newImage = new Bitmap(1024, 768);
using (Graphics g = Graphics.FromImage(newImage))
{
    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    g.DrawImage(uploaded, 0, 0, 1024, 768);
}

byte[] results;
using (MemoryStream ms = new MemoryStream())
{
    ImageCodecInfo codec = ImageCodecInfo.GetImageEncoders().FirstOrDefault(c => c.FormatID == ImageFormat.Jpeg.Guid);
    EncoderParameters jpegParms = new EncoderParameters(1);
    jpegParms.Param[0] = new EncoderParameter(Encoder.Quality, 95L);
    newImage.Save(ms, codec, jpegParms);
    results = ms.ToArray();
}

string sqlImage = "update MemberReport set image1 = @Data where memberreportid = '" + Session["memberreportid"] + "'";
SqlCommand cmdImage = new SqlCommand(sqlImage);
cmdImage.Parameters.AddWithValue("@Data", results);
InsertUpdateData(cmdImage);
4

3 回答 3

2

我猜你的问题是相对路径,而不是

Image uploaded6 = Image.FromFile("/image/defaultImage.jpg");

您应该提供本地路径,您可以通过以下方式获取它:

Image uploaded6 = Image.FromFile(Server.MapPath("~/image/defaultImage.jpg"));
于 2013-08-26T09:37:30.293 回答
1

System.Drawing.Image.FromStream 需要“MemoryStream”作为参数。

 byte[] file = null;
 MemoryStream memoryStream = new MemoryStream();
 memoryStream = new MemoryStream(file, false);

 System.Drawing.Image objTempImg = System.Drawing.Image.FromStream(memoryStream)

byte[] 文件是 based64 图像

于 2013-08-26T05:56:04.677 回答
1
System.Drawing.Image.FromStream(Stream)

您必须在此方法中发送 Stream 参数。

于 2013-08-26T05:57:05.100 回答