因为我没学过c语言,标题可能有许多错误,请见谅。
我用electron开发一个桌面软件,需要获取exe文件的图标(不要app.getFileIcon
这东西),在网上找了一圈没有可用的。最理想的是extracticon.exe,但它只能生成png文件
我需要ReadableStream
或 Buffer
Electron:
protocol.handle('exei', () => {
let url = request.url.slice("exei:///".length)
let imgStream = exeToPng(url) // 提取exe图标返回stream?
return new Response(
imgStream,
{ headers: { 'content-type': 'image/png' } }
);
});
[c#] exeToPng.exe:
参考ExtractIcon源码
namespace exeToPng
{
public partial class Program
{
static void Main(string[] args
{
MemoryStream memoryStream = new MemoryStream();
// ...
iconBMP.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
iconBMP.Dispose();
// 我不知道是否有可能返回这个memoryStream
}
}
}
如果返回stream是可能的,希望能提供一下代码,如果不能,是否意味着我只能先保存为图片后在node中读取?谢谢
二进制字节数组的话直接是 byte[]
。Stream 就是用于流式访问 byte[]
的。
你这里直接 memoryStream.ToArray()
就可以得到 byte[]
了。
不过看起来你的需求是想通过 Electron 调用 C# 里的方法?
原则上这是可行的,相当于 Electron 把 C# 当动态链接库用呗,有 edge.js 之类的现成的开源方案。但这需要你懂得 C# 的一些基础知识,起码得知道什么是程序集、什么是反射。但题主没学过 C# 的话这种方式学习成本还是挺高的,所以建议还是通过临时文件中转。
其实通过临时文件在两个程序之间传递数据是一种非常常见的方式。比如很多视频类型转换器,其实就是做了个 GUI 的“壳”,里面调用的是 ffmpeg,互操作也是通过临时文件的方式。
主要内容:Buffer 与字符编码,创建 Buffer 类,写入缓冲区,从缓冲区读取数据,将 Buffer 转换为 JSON 对象,缓冲区合并,缓冲区比较,拷贝缓冲区,缓冲区裁剪,缓冲区长度,方法参考手册JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。 但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。 在 Node.js 中,Buffer 类是随 Node 内核一起发布的
更新了Promise示例。 我正在运行NodeJS,并且在多个-语句和-语句中遇到问题。我正在尝试使用,这似乎是一种方法。 这是我的示例代码: 它似乎没有等待Promise2完成数据库查询。 如何确保在返回任何语句之前完成数据库查询?
有可能有一个返回整数或浮点的函数吗?如果可能的话,我想把这两个函数合二为一:
问题内容: 我正在从第三方网站(家庭用电)中检索JSON,并且根据我从该站点的要求,返回的JSON可能是数组,也可能不是数组。例如,如果我请求我的智能电表列表,则会得到以下信息(由于尺寸较大,结果被截断了): 其中 gwrcmd 是单个元素。 但是,如果我要求最近半小时用电,则会得到以下信息: 看看 gwrcmd 现在是一个数组吗? 在我的Go应用程序中,我有一个看起来像这样的结构(再次被截断了一
Java1.8正在接收类,它允许我们显式地说明一个方法何时可能返回空值,并在使用它之前“强制”它的使用者验证它是否为空()。 我看到C#有,它执行类似的操作,但使用的是基本类型。它似乎用于DB查询,以区分值是否存在且为0,以及值是否不存在且为NULL。 但似乎C#的对对象不起作用,只对基本类型起作用,而Java的只对对象起作用,对基本类型不起作用。 在C#中是否有一个可为空的/可选的类,迫使我们在
描述 (Description) C库函数void setbuf(FILE *stream, char *buffer)定义了如何缓冲流。 一旦与流关联的文件已经打开,但在进行任何输入或输出操作之前,应调用此函数。 声明 (Declaration) 以下是setbuf()函数的声明。 void setbuf(FILE *stream, char *buffer) 参数 (Parameters)