पर एसवीजी ट्रांसकोड करते समय खाली छवि प्राप्त करें मैं एक एसवीजी छवि उत्पन्न करने की कोशिश कर रहा हूं और फिर इसे अपाचे बटिक का उपयोग करके पीएनजी में ट्रांसकोड कर रहा हूं। हालांकि, मैं एक खाली छवि के साथ समाप्त होता हूं और मैं नहीं देख सकता क्यों।पीएनजी
मैं अपने ट्रांसकोडिंग के लिए आधार के रूप में एसवीजीडीओएम कार्यान्वयन से दस्तावेज़ का उपयोग करता हूं (डिस्क पर एसवीजी लिखने से बचने और इसे फिर से लोड करने से बचने के लिए)। यहां एक उदाहरण दिया गया है:
DOMImplementation domImpl = SVGDOMImplementation.getDOMImplementation();
String namespace = SVGDOMImplementation.SVG_NAMESPACE_URI;
Document document = domImpl.createDocument(namespace, "svg", null);
//stuff that builds SVG (and works)
TranscoderInput transcoderInput = new TranscoderInput(svgGenerator.getDOMFactory());
PNGTranscoder transcoder = new PNGTranscoder();
transcoder.addTranscodingHint(PNGTranscoder.KEY_WIDTH, new Float(svgWidth));
transcoder.addTranscodingHint(PNGTranscoder.KEY_HEIGHT, new Float(svgHeight));
try {
File temp = File.createTempFile(key, ".png");
FileOutputStream outputstream = new FileOutputStream(temp);
TranscoderOutput output = new TranscoderOutput(outputstream);
transcoder.transcode(transcoderInput, output);
outputstream.flush();
outputstream.close();
name = temp.getName();
} catch (IOException ioex) {
ioex.printStackTrace();
} catch (TranscoderException trex) {
trex.printStackTrace();
}
मेरी समस्या यह है कि परिणामस्वरूप छवि खाली है और मैं क्यों नहीं देख सकता। कोई संकेत?
सही, svgGenerator एक SVGGraphics2D है। GetDOMFactory() उसी दस्तावेज़/ऑब्जेक्ट को विधि के रूप में प्रस्तुत करता है जिसे मैं विधि की शुरुआत में बनाता हूं, इसलिए इससे कोई फर्क नहीं पड़ता। मैं पहले से ही जेपीईजी उदाहरण से अधिक बार रहा हूं। शायद पीएनजी में उस उदाहरण को बदलने के लिए पर्याप्त नहीं है (मैंने वास्तव में उस विशेष उदाहरण का परीक्षण नहीं किया था), और शायद पीएनजी ट्रांसकोडर को कुछ अन्य/अतिरिक्त सेटिंग्स की आवश्यकता है जिन्हें मैं नहीं देख रहा हूं। मैंने अपनी वास्तविक समस्या को हल किया (एसवीजी को पीडीएफ में ठीक से प्राप्त करना), इसलिए अब इसकी आवश्यकता नहीं है। – fiskeben