相关疑难解决方法(0)

Image.Save()抛出异常"Value不能为null ./r/nParameter name:encoder"

我在使用RawFormat保存位图图像时收到"值不能为空.\ r \nParameter name:encoder"错误.示例代码:

class Program
{
    static void Main(string[] args)
    {
        try
        {
            var image = new System.Drawing.Bitmap(500, 400);
            var stream = new MemoryStream();
            image.Save(stream, image.RawFormat);
        }
        catch (Exception exp)
        {
            Console.WriteLine(exp.ToString());
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现有的ImageEncoders列表中不存在RawFormat,因为下面的代码返回null.

var imageCodecInfo = ImageCodecInfo.GetImageEncoders().FirstOrDefault(codec => codec.FormatID == image.RawFormat.Guid);

注意:图像可以是任何类型(JPEG,BMP,PNG)等.Image.Save()应该在image.RawFormat上工作.RawFormat不是Bitmap类型.如果我将image.RawFormat更改为ImageFormat.Bmp,则保存操作会成功.

参考下面的链接,但没有找到任何使其独立于图像类型.

Image.Save崩溃:{"值不能为空.\ r \nParameter name:encoder"} 为什么Image.Save(Stream,ImageFormat)会抛出异常?

欢迎任何建议.

.net c# image

32
推荐指数
2
解决办法
2万
查看次数

将System.Drawing.Image转换为流

可能重复:
System.Drawing.Image流C#

如何将System.Drawing.Image转换为流?

c#

9
推荐指数
2
解决办法
4万
查看次数

C#将System.Drawing.Image附加到电子邮件

有没有办法将System.Drawing.Image附加到电子邮件而不保存它,然后从保存的路径中抓取它.

现在我正在创建图像并保存它.然后我发送电子邮件:

MailMessage mail = new MailMessage();
                string _body = "body"

                mail.Body = _body;
                string _attacmentPath;
                if (iP.Contains(":"))
                    _attacmentPath = (@"path1");//, System.Net.Mime.MediaTypeNames.Application.Octet));
                else
                    _attacmentPath = @"path2");
                mail.Attachments.Add(new Attachment(_attacmentPath, System.Net.Mime.MediaTypeNames.Application.Octet));
                mail.To.Add(_imageInfo.VendorEmail);
                mail.Subject = "Rouses' PO # " + _imageInfo.PONumber.Trim();
                mail.From = _imageInfo.VendorNum == 691 ? new MailAddress("email", "") : new MailAddress("email", "");
                SmtpClient server = null;
                mail.IsBodyHtml = true;
                mail.Priority = MailPriority.Normal; 
                server = new SmtpClient("server");
                try
                {

                    server.Send(mail);
                }
                catch
                {

                }
Run Code Online (Sandbox Code Playgroud)

无论如何直接将System.Drawing.Image传递给mail.Attachments.Add()?

c# email memorystream image email-attachments

8
推荐指数
2
解决办法
4461
查看次数

什么是标准POST请求的结构

我正在使用C#作为我的项目,任何人都可以告诉我什么是HTTP POST Requset的standered结构.如何在代码请求中附加像文件一样的POST数据.

我只想从我的代码本身创建一个POST请求,并发布不同的项目.

我已经检查了Ietf的RFC for http POST,但它太长了......

c# post http

2
推荐指数
1
解决办法
4098
查看次数

标签 统计

c# ×4

image ×2

.net ×1

email ×1

email-attachments ×1

http ×1

memorystream ×1

post ×1