Как я могу конвертировать SVG в PNG с помощью батика? - PullRequest
0 голосов
/ 06 апреля 2020

Я пытаюсь использовать Apache батик с android, просто чтобы конвертировать изображение SVG в PNG. Я поместил эти два плагина в build.gradle

реализация 'org. apache .xmlgraphics: батик-транскодер: 1,11'

внедрение 'org. apache .xmlgraphics: батик-код c: 1.11 '

Это мой код:

 TranscoderInput input_svg_image = new TranscoderInput(path + "/" + svgFileName);

        OutputStream png_ostream = null;

        try {
            png_ostream = new FileOutputStream(path + "/" + pngFileName);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        TranscoderOutput output_png_image = new TranscoderOutput(png_ostream);

        PNGTranscoder my_converter = new PNGTranscoder();

        try {
            my_converter.transcode(input_svg_image, output_png_image);
        } catch (TranscoderException e) {
            e.printStackTrace();
        }

        try {
            png_ostream.flush();
            png_ostream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }

Когда я пытаюсь конвертировать изображение эти ошибки показывают:

Кто-нибудь знает, как я могу это исправить?

W/System.err: org.apache.batik.transcoder.TranscoderException: null
    Enclosed Exception:
    http://apache.org/xml/features/nonvalidating/load-external-dtd
W/System.err:     at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:136)
        at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
        at br.com.tickteria.app_tickteria.MainActivity.converteSvgToPng(MainActivity.java:816)
        at br.com.tickteria.app_tickteria.MainActivity.access$900(MainActivity.java:45)
        at br.com.tickteria.app_tickteria.MainActivity$11.onMethodCall(MainActivity.java:256)
        at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231)
        at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93)
        at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642)
        at android.os.MessageQueue.nativePollOnce(Native Method)
        at android.os.MessageQueue.next(MessageQueue.java:325)
W/System.err:     at android.os.Looper.loop(Looper.java:145)
        at android.app.ActivityThread.main(ActivityThread.java:6578)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)
    Caused by: org.apache.batik.dom.util.SAXIOException: http://apache.org/xml/features/nonvalidating/load-external-dtd
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(SAXDocumentFactory.java:459)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(SAXDocumentFactory.java:357)
W/System.err:     at org.apache.batik.anim.dom.SAXSVGDocumentFactory.createDocument(SAXSVGDocumentFactory.java:202)
        at org.apache.batik.anim.dom.SAXSVGDocumentFactory.createDocument(SAXSVGDocumentFactory.java:283)
        at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:129)
        ... 14 more
    Caused by: org.xml.sax.SAXNotRecognizedException: http://apache.org/xml/features/nonvalidating/load-external-dtd
        at org.apache.harmony.xml.ExpatReader.setFeature(ExpatReader.java:130)
        at org.apache.batik.dom.util.SAXDocumentFactory.createDocument(SAXDocumentFactory.java:450)
        ... 18 more
...