当前位置: 首页 > 知识库问答 >
问题:

值不能为空。参数名称:位图转换C#中的编码器

荀博
2023-03-14

为了将位图转换为base64,我必须将位图转换为图像。当我将图像转换为img.save(ms,img.rawformat)的memorystream;时,在从屏幕拍摄位图(如Image img=(Image)bitmap;Image img=bitmap as Image)转换图像后,我会得到这条消息,但当我使用本地存储的图像(如Image.Image.fromfile(路径))时,它工作得很好。当我不想存储屏幕截图并每次都读一遍这是我尝试过的代码时,我该如何避免这个错误呢

  Image img = bitmap as Image;
using (MemoryStream ms = new MemoryStream())
{
img.Save(ms, img.RawFormat);
string base64 = Convert.ToBase64String(ms.ToArray());
}

共有1个答案

拓拔辰钊
2023-03-14

实际上,您不必将bitmab转换为image,而您可以直接使用base64对您的bitmab进行编码

试试看:

using (MemoryStream ms = new MemoryStream())
{
     bitmab.Save(ms, ImageFormat.Jpeg); // you can change your image format as you want
     byte[] imageBytes = ms.ToArray();
     string base64 = Convert.ToBase64String(imageBytes);
}
 类似资料:
  • 我做了一个自动加载用户设置xml文件的程序,但一个问题是,当我在代码中添加新值时,程序试图读取没有“data5”值的xml文件时,程序返回一个错误: 当我关闭程序时,我得到了另一个关于另一个进程使用的文件的错误 我不明白为什么文件仍然被锁定。它应该在之后关闭。我试图让程序在读取xml之前创建一个新的xml值,但这不是一个好主意,因为它将替换修改后的值。这是我的密码

  • 问题内容: 我试图在我的appsettings.json文件中写入连接字符串,并将其带入我的启动文件中,但我不断得到一个Value不能为null。参数名称:connectionString。我一直在使用各种示例,但似乎看不到带有ASP.NET 1.0 Core启动类的新设置。 Appsetting.json文件: 尝试Startup.cs的方法 问题答案: 首先, 与在Visual Studio中

  • 哪个编译器就在这里?

  • 我正在尝试使用Jolt transformation转换一个JSON,在这里寻找一些输入。我正在尝试根据属性值进行过滤。 我的目标是获得一个数组,其中只包含动作为“remove”的项目。 这是我的输入和预期输出: 输入: 预期产出: 你能帮我写一个简单的规范吗?

  • 本文向大家介绍C#把UNICODE编码转换为GB编码的实例,包括了C#把UNICODE编码转换为GB编码的实例的使用技巧和注意事项,需要的朋友参考一下 实例如下: 以上这篇C#把UNICODE编码转换为GB编码的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我有几个月以1,2,3,4,… 12的形式存储在SQL Server中。我想将它们显示为一月,二月等。SQLServer中是否有像MonthName(1)= January这样的函数?如果可能的话,我试图避免使用CASE语句。 问题答案: 有点hacky,但应该可以工作: