J/Linkを使用してMathematicaからJavaにイメージを取得しようとしています。私はこのようなMathematicaで画像を印刷することができる午前:MathematicaイメージをJavaで取得する
Return [ Image[Graphics[Raster[ img[[1]] ], AspectRatio->Automatic, ImageSize->530 ]] ];
Return [ Graphics[Raster[ img[[1]] ], AspectRatio->Automatic, ImageSize->530 ] ];
Return [ Raster[ note1[[1]] ] ];
Return [ note1[[1]] ];
私のJavaコード:
ml.evaluate("tmp = renderImageGeneric[" + sampleId + ", noteText," + sizeX + "," + sizeY + ", margin," + dpi + "," + lineStep + "," + tabStep + "," + ligatureMatch + "," + maxLigHeightDiff + "," + mmSearch + "," + highToLowGap + "," + lowToHighGap + "," + wordBaselineVariance + "," + debugFlag + "]");
ml.discardAnswer();
byte[] res = ml.evaluateToImage("tmp", 0, 0);
ByteArrayInputStream strm = new ByteArrayInputStream(res);
BufferedImage imag = ImageIO.read(strm);
//BufferedImage imag = ImageIO.read(new InputStream(res));
if(imag != null) {
ImageIO.write(imag, "png", new File("/Users/Rebecca/","test.png"));
}else {
System.out.println("image is null");
}
私はさまざまな方法でMathematicaの関数からデータを返す試みた
Print[ Graphics[Raster[ img[[1]] ], AspectRatio->Automatic, ImageSize->530 ] ];
デバッグ時に、resに大きなバイト配列があります。画像は保存されますが、空白です(白い画像)。
文字列(「青」)だけを返すと、青文字列の画像が保存されます。
私はrenderImageGenericで何か別のものを返す必要があると仮定していますが、何が分かりません。
ありがとうございます!
これも機能しませんでした。私は何が起こっているのかは分かりませんが、JLinkは関数の返り値を正しく評価していないようです。 – rmw