JAVA: конвертер SVG в JPG

Существуют ли библиотеки для преобразования SVG в JPG? кроме БАТИК ? я использовал BATIK, но обнаружил некоторые проблемы, такие как это исключение:

java.lang.NullPointerException в org.apache.batik.css.engine.CSSEngine.getCascadedStyleMap(CSSEngine.java:684) в org.apache.batik.css.engine.CSSEngine.getComputedStyle(CSSEngine.java:755) в org. apache.batik.bridge.CSSUtilities.getComputedStyle(CSSUtilities.java:96) в org.apache.batik.bridge.CSSUtilities.convertDisplay(CSSUtilities.java:509) в org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder. java:176) на org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:148) на org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:76) на org.apache.batik.transcoder .SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:165) в org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:86) в org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:132) )

это мой код:

          JPEGTranscoder transcoder = new JPEGTranscoder();

      transcoder.addTranscodingHint(JPEGTranscoder.KEY_XML_PARSER_CLASSNAME,
          "org.apache.crimson.parser.XMLReaderImpl");
      transcoder.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,
          new Float(1.0));

      TranscoderInput input = new TranscoderInput(new FileInputStream("C:/Taha/SmartPlannerNew/rectangles.svg"));
      OutputStream ostream = new FileOutputStream("C:/Taha/SmartPlannerNew/out.jpg");
      TranscoderOutput output = new TranscoderOutput(ostream);

      try {
        transcoder.transcode(input, output);
    } catch (TranscoderException e) { 
        System.out.println("error***************************************************************************************************************************");
        e.printStackTrace();
    }
      System.out.println("done.");
      ostream.close();
      System.exit(0);

Кто-нибудь может мне помочь ?


person mohammad    schedule 06.03.2013    source источник
comment
Вы должны сосредоточиться на батике - см. этот вопрос - Есть ли какая-нибудь библиотека Java для преобразования .svg в .png или .jpg в коде? . Возможно, вы сможете заставить Батик работать.   -  person Caffeinated    schedule 06.03.2013


Ответы (2)


Батик — это именно то, что вам нужно, он абсолютно стабилен, и на самом деле больше ничего нет.

Вы можете прочитать удобное официальное руководство по использованию транскодера в батике: http://xmlgraphics.apache.org/batik/using/transcoder.html

Если у вас все еще есть проблемы, попробуйте опубликовать код, который вы используете, который вызывает ошибку, и полную трассировку стека. Кто-нибудь здесь сможет вам помочь.

person trognanders    schedule 06.03.2013
comment
Иногда файлы JAR могут быть беспорядочными. В будущем вы можете рассмотреть управляемую систему сборки, такую ​​как Apache Maven, или менеджер зависимостей, такой как Apache Ivy. - person trognanders; 08.03.2013

моя ошибка заключалась в том, что я использовал разные версии файлов jar, я удалил все свои jar-файлы и загрузил новый набор jar-файлов из того же

person mohammad    schedule 08.03.2013
comment
Я также получал NullPointerException при перекодировании из ввода в вывод, отладке API. Я обнаружил, что только batik-transcoder jar недостаточно, и мне нужно было добавить batik-codec jar, чтобы исправить - person ankitkpd; 24.10.2018