हम JGraphX परियोजना में यह करते हैं। स्रोत कोड डाउनलोड करें और com.mxgraph.util.png पैकेज में एक नज़र डालें, वहां आपको एन्कोडिंग के लिए तीन कक्षाएं मिलेंगी जिन्हें हमने अपाचे बटिक स्रोतों से कॉपी किया था। SaveXmlPng विधि में com.mxgraph.examples.swing.editor.EditorActions में उपयोग का एक उदाहरण है। कुछ संपादित एक कोड की तरह दिखता है:
mxPngEncodeParam param = mxPngEncodeParam
.getDefaultEncodeParam(image);
param.setCompressedText(new String[] { "mxGraphModel", xml });
// Saves as a PNG file
FileOutputStream outputStream = new FileOutputStream(new File(
filename));
try
{
mxPngImageEncoder encoder = new mxPngImageEncoder(outputStream,
param);
if (image != null)
{
encoder.encode(image);
}
}
finally
{
outputStream.close();
}
कहाँ छवि BufferedImage कि .PNG बनेगी और xml स्ट्रिंग हम iTxt खंड में जगह करना चाहते हैं है। "mxGraphModel" उस XML स्ट्रिंग के लिए कुंजी है (अनुभाग में कुछ कुंजी/मान जोड़े शामिल हैं), जाहिर है कि आप इसे अपनी कुंजी से प्रतिस्थापित करते हैं।
com.mxgraph.util.png के तहत भी हमने एक बहुत ही सरल वर्ग लिखा है जो पूरी छवि को संसाधित किए बिना iTxt निकालता है। आप setCompressedText() के बजाय mxPngEncodeParam.setText का उपयोग कर टेक्स्ट खंड के लिए एक ही विचार लागू कर सकते हैं, लेकिन संकुचित पाठ अनुभाग काफी बड़े टेक्स्ट अनुभागों की अनुमति देता है।
कि केवल डिकोडिंग के लिए नहीं है लिखने के लिए पूर्ण नियंत्रण देता है? – axel22