gpt4 book ai didi

c# - 输出图像字符串C++到C#父程序(不保存到硬盘)

转载 作者:行者123 更新时间:2023-11-30 05:45:09 25 4
gpt4 key购买 nike

我有一个处理图像的 C++ 应用程序 (.Exe)。它以一张图片作为参数,并自动保存一张新图片作为输出。

我想运行我的 C# 应用程序,它将运行带有字符串参数的 .exe,而不是必须读取 HDD 上的图像我希望 C++ 应用程序立即返回一个字符串或其他东西给父 C#应用程序在保存到硬盘之前再次处理它。

我有 C++ 源代码。所以我现在可以修改它的输出:

unsigned char *pixels = new unsigned char[width * height * 3];
unsigned char *p = pixels, *b = bitmap;
int col, row;

for (row = 0; row < height; row++)
for (col = 0; col < width; col++)
{
*p++ = *b;
*p++ = *b;
*p++ = *b++;
}

corona::Image *img = corona::CreateImage(width, height, IMAGE_FORMAT, pixels);
corona::SaveImage(filename, corona::FF_AUTODETECT, img);
delete img;

那么,该 C++ 应用程序中的新代码是什么?我的 C# 主父应用程序中要运行并获取该输出以进行处理的代码是什么?谢谢大家

编辑:对于 C# 部分(运行 C++ .exe 并取回输出),我想我在 StackOverflow 上找到了解决方案:How to hide cmd window while running a batch file?

仍然需要 C++ 部分,因为我对 C++ 完全一无所知。

最佳答案

您可以通过以下两种方式之一进行此操作

  1. 创建 named shared memory in the C# application , 将此共享内存的名称传递给 C++ 应用程序。然后是 C++ 应用程序 writes its results to this shared memory ,可以在写入最终文件之前由 C# 应用程序处理。
  2. Base64 encoded data从 C++ 应用程序到标准输出(使用 printf 或 cout)并从父 C# 应用程序读取它,decode和过程。

请注意,选项 1 将比选项 2 快得多

关于c# - 输出图像字符串C++到C#父程序(不保存到硬盘),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29487454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com