2011-02-25 5 views
5

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で何か別のものを返す必要があると仮定していますが、何が分かりません。

ありがとうございます!

答えて

2

ようsomenthingしてみてくださいでした。しかし、私はコースを変更し、Mathematicaにイメージをファイルに出力させた。 Mathematica関数へのパスを渡して、Javaがどこにあるかを知るようにした。最高の解決策ではありませんが、それはトリックです。

0

あなたは私が正しく機能からのリターンを得ることができませんでした

 Return[ExportString[Graphics[Disk[], ImageSize -> 100], "PNG"]] 
+0

これも機能しませんでした。私は何が起こっているのかは分かりませんが、JLinkは関数の返り値を正しく評価していないようです。 – rmw

関連する問題