2014-08-29 7 views
0

현재 J/Link (MathLink)를 사용하는 응용 프로그램에서 작업하고 있습니다. 그러나 KernelLink.evaluateToImage() 함수에 문제가 있습니다.J/Link (MathLink) - evaluateToImage()는 항상 null을 반환합니다.

내 현재 코드는 다음과 같습니다

kl = MathLinkFactory.createKernelLink("-linkmode launch -linkname 'math -mathlink'"); 
: 내가 함께 커널을 시작

evaluateToImage 어떻게 든 항상 null을 반환하기 때문에 나는 항상 다른 절을 입력하고

byte[] gifData = kl.evaluateToImage("Plot[x,{x,0,1}]",0,0); 
      if (gifData != null) { 
       BufferedImage img = ImageIO.read(new ByteArrayInputStream(gifData)); 
       int w = img.getWidth(); 
       int h = img.getHeight(); 
       BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB); 
       Graphics g = bi.getGraphics(); 
       g.drawImage(img, 0, 0, null); 
      } 
      else { 
       System.out.println("Not a valid Graphics Expression."); 
      } 

...

이 문제와 관련하여 도와 줄 수 있습니까? 감사합니다. NikNak

답변

0

해결책은 evaluateToTypeset() 함수를 사용하고 있습니다. 올바른 코드는 다음과 같아야합니다.

byte[] gifData = mathLink.evaluateToTypeset(mathInput, 0, true); 

        FileOutputStream fileStream = new FileOutputStream(new File("/../1.gif")); 
        fileStream.write(gifData); 
        fileStream.close();