附加多种图像格式,不仅仅是JPG格式到电子邮件。

4

这是我目前的进展...

 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格式的图像。


你试过使用.Gif了吗? - Bart
请解释一下?我希望它能让我附加Jpg、Gif或Png。 - Omar Little
2个回答

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。
希望这能帮到你!

ToStream 返回 System.IO.Stream。它来自哪里? - TaW
这个问题在2013年已经得到了解答并且当时对我有效,但我不能确定它现在是否仍然适用,因为我没有样本代码了。 - mtoregan

2

试试这个:

 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 似乎有点棘手,但至少这是正确的方向。


嗨..我想在bb上附加多张图片到邮件中,这可能吗? - Hasmukh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接