1

イメージ フォルダ内のイメージとイメージ名を変換defaultImageして、データベース テーブルに更新しようとしています。

しかし、今、このコード行に問題があります:

これを使用してコードを変更します。

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

これの代わりに:

System.Drawing.Image uploaded = System.Drawing.Image.FromStream(~/images/defaultImage);

私は今のエラーを取得しています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

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 に答える