这就是我到目前为止......
MemoryStream imgStream = new MemoryStream();
System.Drawing.Image img = System.Drawing.Image.FromStream(fuImage.PostedFile.InputStream);
string filename = fuImage.PostedFile.FileName;
img.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg);
imgStream.Seek(0L, SeekOrigin.Begin);
EmailMsg.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));
因此它可以很好地附加JPEG图像。但我想改变它,以便它允许PNG和GIF。
答案 0 :(得分:4)
您现在可能已经找到了这个答案,所以这个答案适用于遇到此问题的其他任何人。
Image image = ConvertToImage(response);
Stream imageStream = ToStream(image, ImageFormat.Png);
LinkedResource logo = new LinkedResource(imageStream, "image/png");
上面是一个为我工作的示例,ConvertToImage返回System.Drawing.Image,ToStream返回System.IO.Stream。
我希望这有帮助!
答案 1 :(得分:1)
试试这个:
string ext = System.IO.Path.GetExtension(this.imageUpload.PostedFile.FileName);
string low = ext.ToLower();
MemoryStream imgStream = new MemoryStream();
System.Drawing.Image theImage = System.Drawing.Image.FromStream(imageUpload.PostedFile.InputStream);
string filename = imageUpload.PostedFile.FileName;
if (low == ".jpg")
{
theImage.Save(imgStream, System.Drawing.Imaging.ImageFormat.Jpeg);
}
else if (low == ".gif")
{
theImage.Save(imgStream, System.Drawing.Imaging.ImageFormat.Gif);
}
else if (low == ".tif")
{
theImage.Save(imgStream, System.Drawing.Imaging.ImageFormat.Tiff);
}
imgStream.Seek(0L, SeekOrigin.Begin);
if (low == ".jpg")
{
mMailMessage.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));
}
else if (low == ".gif")
{
mMailMessage.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Gif));
}
else if (low == ".tif")
{
mMailMessage.Attachments.Add(new Attachment(imgStream, filename, System.Net.Mime.MediaTypeNames.Image.Tiff));
}
做.png似乎有点棘手,但至少那是在正确的轨道上。