2011-02-25 9 views
5

में गणित छवि प्राप्त करना मैं मैथमैटिका से जावा तक एक छवि प्राप्त करने के लिए जे/लिंक का उपयोग करने का प्रयास कर रहा हूं। मैं इस तरह मेथेमेटिका में छवि मुद्रित करने में सक्षम हूँ:जावा

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]] ]; 

मेरे जावा कोड:

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"); 
} 

Print[ Graphics[Raster[ img[[1]] ], AspectRatio->Automatic, ImageSize->530 ] ]; 

मैं विभिन्न तरीकों से मेथेमेटिका समारोह से डेटा लौटने की कोशिश की है

डीबगिंग करते समय, मुझे res में एक बड़ा बाइट सरणी मिलती है। छवि सहेजी जाती है, लेकिन यह खाली है (यानी एक सफेद छवि)।

अगर मैं केवल एक स्ट्रिंग ("नीला") लौटाता हूं, तो स्ट्रिंग नीली वाली एक छवि सहेजी जाती है।

मुझे लगता है कि मुझे रेंडर इमेज जेनेरिक में कुछ अलग करने की ज़रूरत है, लेकिन मैं यह नहीं समझ सकता कि क्या।

धन्यवाद!

उत्तर

2

somenthing मैं समारोह से लौटने के सही ढंग से प्राप्त करने में सक्षम नहीं था की कोशिश किया। हालांकि, मैंने पाठ्यक्रम बदल दिया और मैथमैटिका को छवि को फ़ाइल में आउटपुट किया। मैंने गणित समारोह के लिए एक रास्ता पारित किया ताकि जावा जान सके कि यह कहां है। सबसे अच्छा समाधान नहीं है लेकिन यह चाल है।

0

आप की तरह

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

यह भी काम नहीं करता था। मुझे यकीन नहीं है कि क्या हो रहा है, लेकिन JLink बस एक फ़ंक्शन की वापसी का सही मूल्यांकन नहीं कर रहा है। – rmw