我正在使用此代码 ( test.html ) 使用JDenticon生成一个网站:
<!DOCTYPE HTML>
<html>
<head>
<title>Test</title>
</head>
<body>
<script src="https://cdn.jsdelivr.net/jdenticon/1.3.2/jdenticon.min.js" async></script>
<svg width="200" height="200" data-jdenticon-hash="ff8adece0631821959f443c9d956fc39">
Fallback text for browsers not supporting inline svg</svg>
</body>
</html>
我想让 Java 桌面应用程序可以访问此代码中生成的图像,并希望将其保存在我的 PC 上。这可能吗,也许还可以更改hascode(ff8adece0631821959f443c9d956fc39)
它的代码是什么?
编辑#1:
我在 JDenticon 的 API 中发现了一些看起来像这样并用于 .NET Framework 的东西:
var engine = new Jurassic.ScriptEngine();
engine.ExecuteFile("<path to jdenticon.js>");
engine.SetGlobalValue("size", 200);
engine.SetGlobalValue("hash", "ff8adece0631821959f443c9d956fc39");
var svg = engine.Evaluate<string>("jdenticon.toSvg(hash, size)");
File.WriteAllText("testicon.svg", svg);
我想在 Java 中做这样的事情并找到了Java ScriptEngine (Tutorials: Oracle )。但我不知道如何使用它,现在我的代码如下所示:
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
engine.put("size", 200);
engine.put("hash", "ff8adece0631821959f443c9d956fc39");
String svg = (String) engine.eval(new java.io.FileReader("C:/jdenticon.js"));
这显然行不通,因为它没有调用 jdenticon.js 文件中的jdenticon.toSvg(hash, size)方法。因此,如果有人对如何解决这个问题有一个想法,那就太好了。