我也需要将字节数组(图像)转换为编码的URL,以便可以由我的远程服务器解释,然后在进行处理之后,将其重新编码并发送回用户。
这用于设置服务器(云),深度学习的托管模型将在该服务器上获得用户处理过的图像(在实验室使用FiJi(imageJ))。它将消除噪声(泊松和高斯噪声),并且用户将直接从服务器接收其堆栈,从而避免它们在计算机上安装笨重的东西。
importClass(Packages.ij.IJ);
importClass(java.awt.image.BufferedImage);
importClass(java.io.ByteArrayOutputStream);
importClass(java.io.File);
importClass(javax.imageio.ImageIO);
importClass(java.util.Base64);
importClass(java.lang.StringBuffer);
imp = IJ.getImage();
var buffered = imp.getBufferedImage();
imp.draw();
imp.getCurrentSlice();
baos = new ByteArrayOutputStream();
ImageIO.write( buffered, "jpg", baos );
baos.flush();
imageInByte = baos.toByteArray();
baos.close();
IJ.log(imageInByte[18751]);
因此,此刻(我对JS很陌生,对“ IJ.log(imageInByte [])”这一行感到抱歉,因为这是查看我的字节编码是否正确工作的唯一方法。
我现在正在努力寻找一种方法来将该“ imageInByte”转换为URL,因此下一步是设置服务器,以便他可以获取该URL,对其进行解码,具有8位图像,他的工作是消除图像(显微镜堆栈)上的噪音,将其重新编码为字节,然后重新编码为URL,然后通过ImageJ插件将其重新发送给客户,并享受干净的图像,而无需在本地主机上安装整个模型...
我不知道如何进行操作,因为我发现的所有内容都是纯Java或Web编程,并且我正在编写FiJi脚本 (对不起,我不熟悉从一种语言到另一种语言的传递,因为我已经找到了解决方案,但是针对不相似的问题以及PLSQL或C ++)
我通常会先使用“ btoa”,然后使用“ atob”,但是我的斐济控制台返回我“未定义”,我已经导入了许多缓冲类,但是不会被“定义” ...
编辑:另一种解决方案是获取相同的代码(我不知道如何将这些Java库作为Jython导入),因此我可以得到相同的结果(图像的字节数组),并使它成为编码的URL似乎很多使用Python更容易,因此我也乐于将其翻译成python的任何帮助!
答案 0 :(得分:0)
因此,在意识到使用JS变得越来越困难之后,我将代码换成了python(这要归功于Jython env)
我在问题上走得更远,所以我将在python中发布
answer:不可能将数组的字节转换为JS中编码的URL或toString中的toString。
再次感谢您的宝贵帮助。