Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用图像作为参数从c#调用python脚本_Python_C#_Ironpython - Fatal编程技术网

使用图像作为参数从c#调用python脚本

使用图像作为参数从c#调用python脚本,python,c#,ironpython,Python,C#,Ironpython,我有一个c#应用程序,它有一个位图对象。我想调用python脚本并将位图发送给他。 这样做的目的是不要将位图保存在硬盘上,因为这样会降低应用程序的速度。我希望直接使用应用程序的内存 你知道我怎么做吗 谢谢:)编写python程序,从stdin读取位图 import sys bitmap = sys.stdin.read() 让C#程序在将stdin设置为管道的情况下执行程序,写入位图,然后关闭管道。编写python程序以从stdin读取位图 import sys bitmap = sys.st

我有一个c#应用程序,它有一个位图对象。我想调用python脚本并将位图发送给他。 这样做的目的是不要将位图保存在硬盘上,因为这样会降低应用程序的速度。我希望直接使用应用程序的内存

你知道我怎么做吗


谢谢:)

编写python程序,从stdin读取位图

import sys
bitmap = sys.stdin.read()

让C#程序在将stdin设置为管道的情况下执行程序,写入位图,然后关闭管道。

编写python程序以从stdin读取位图

import sys
bitmap = sys.stdin.read()

让C#程序执行程序,将stdin设置为管道,写入位图,然后关闭管道。

基于tdelaney思想的解决方案。我使用标准输入/输出进行通信

C#

Python:

import sys
import msvcrt
import os

msvcrt.setmode (sys.stdin.fileno(), os.O_BINARY)
bitmap = sys.stdin.buffer.read()

output = open("/tmp/testpython.jpg","wb")
output.write(bitmap)
output.close()

print("hehe")

exit(0)

该解决方案基于tdelaney的思想。我使用标准输入/输出进行通信

C#

Python:

import sys
import msvcrt
import os

msvcrt.setmode (sys.stdin.fileno(), os.O_BINARY)
bitmap = sys.stdin.buffer.read()

output = open("/tmp/testpython.jpg","wb")
output.write(bitmap)
output.close()

print("hehe")

exit(0)

你已经知道如何传递一个字节了吗?字节数组?虽然将其保存到硬盘可能会“减慢速度”,但如果将其作为参数中的数据传递,则可能会损坏图像(例如,编码丢失)。参数的大小也有限制,因此可以处理的文件大小也有限制。如果你处理的图像很小很简单,但这是可以考虑的。你知道如何通过一个字节吗?字节数组?虽然将其保存到硬盘可能会“减慢速度”,但如果将其作为参数中的数据传递,则可能会损坏图像(例如,编码丢失)。参数的大小也有限制,因此可以处理的文件大小也有限制。如果你处理的图像很小很简单,但这是可以考虑的。这是个好主意!好主意!