我有一个关于使用 Javonet 的问题。在 .NET 代码中,我有一个返回 System.DrawingImage 的方法,我必须在我的 Java 代码端获取它。因此,当我通过 Javonet API 发出属性的“get”时,它会返回一个 NObject。这是示例:
.NET 代码:
...
namespace ImageTest
{
public class FileReader
{
public byte[] GetByteArray(string filename)
{
return System.IO.File.ReadAllBytes(filename);
}
public System.Drawing.Image GetImage(string filename)
{
byte[] b = GetByteArray(filename);
using (var ms = new System.IO.MemoryStream(b, false))
{
return Image.FromStream(ms);
}
}
}
}
Java 代码
...
public Image getImage(String fileName) {
NObject res = null;
try {
res = item.get(propName); // Casting NObject to Image is not allowed!
} catch (JavonetException jex) {
jex.printStackTrace();
}
return res; // Wrong: an Image object must be returned!
}
我必须将“res”转换为 Image 或 ImageIcon 或 Java 中的类似内容。有什么建议吗?我是否将其作为字节数组或其他东西获取,或者在 Javonet 上有另一种机制?