इस प्रोजेक्ट के बारे में

TwelveMonkeys ImageIO, Java प्लेटफ़ॉर्म के javax.imageio पैकेज के लिए प्लग-इन और एक्सटेंशन का एक सेट है। इसका घोषित लक्ष्य JDK में शामिल न किए गए इमेज फ़ाइल फ़ॉर्मैट के लिए समर्थन जोड़ना है, ताकि एप्लिकेशन "जंगल में" मिलने वाले डेटा को पढ़ सकें और लेगेसी फ़ॉर्मैट तक पहुँच बनाए रखें। समर्थित फ़ॉर्मैट (README तालिका में पढ़ना/लिखना दर्शाया गया है): - BMP प्लग-इन: BMP (पढ़ना/लिखना), CUR (पढ़ना), ICO (पढ़ना/लिखना) - JPEG प्लग-इन: JPEG (पढ़ना/लिखना), JPEG Lossless (पढ़ना) - TIFF प्लग-इन: TIFF (पढ़ना/लिखना), BigTIFF (पढ़ना/लिखना) - PSD प्लग-इन: PSD (पढ़ना, सीमित लिखना), PSB (पढ़ना) - PNM प्लग-इन: PAM, PBM, PGM, PPM, PFM - PCX प्लग-इन: PCX, DCX - PICT प्लग-इन: PICT, PNTG - अन्य: DDS, HDR, ICNS, IFF, SGI, TGA, WebP (पढ़ना), XWD, Thumbs.db - Batik-आधारित: SVG और WMF (पढ़ना), जिनके लिए Apache Batik आवश्यक है GIF, PNG और WBMP को JDK के मानक प्लग-इन पहले से संभालते हैं; BMP, JPEG और TIFF के लिए यह प्रोजेक्ट विस्तारित समर्थन और अतिरिक्त सुविधाएँ देता है। उपयोग: JAR जोड़ने के बाद, रनटाइम पर प्लग-इन स्वतः खोज लिए जाते हैं, इसलिए बुनियादी पढ़ना ImageIO.read(file) है और लिखना ImageIO.write(image, format, file) है। README में उन्नत उदाहरण ImageReader/ImageWriter इंस्टेंस प्राप्त करना, ImageReadParam/ImageWriteParam सेट करना, थंबनेल और मेटाडेटा पढ़ना, और पूरी इमेज लोड किए बिना आयाम पूछना दिखाते हैं। अतिरिक्त यूटिलिटीज़ में com.twelvemonkeys.imageio.path.Paths के माध्यम से Adobe क्लिपिंग पाथ समर्थन, कई फ़िल्टर के साथ ResampleOp इमेज रीसाइज़िंग ऑपरेशन, और IndexColorModel में Floyd-Steinberg डिदरिंग के लिए DiffusionDither शामिल हैं। README क्षतिग्रस्त इमेज से आंशिक रूप से उपयोगी डेटा पढ़ने का भी वर्णन करता है, जिसके लिए गंतव्य BufferedImage दिया जाता है। इंस्टॉलेशन: groupId com.twelvemonkeys.imageio के अंतर्गत Maven निर्देशांक (उदाहरण के लिए imageio-jpeg, imageio-tiff), या मैन्युअल क्लासपाथ JAR। वेब एप्लिकेशन के लिए, प्लग-इन लोडिंग/अनलोडिंग संभालने हेतु IIOProviderContextListener की सिफ़ारिश की जाती है, और एक Jakarta क्लासिफायर वेरिएंट उपलब्ध है। "fat" JAR बनाते समय, META-INF/services के अंतर्गत SPI फ़ाइलों को मर्ज करना आवश्यक है (उदाहरण के लिए Maven Shade ServicesResourceTransformer के साथ)। बिल्ड Maven (mvn package) का उपयोग करता है; README अनुशंसित बिल्ड JDK के रूप में Oracle JDK 8.x बताता है और OpenJDK के अंतर्गत संभावित टेस्ट अंतरों का उल्लेख करता है। प्रोजेक्ट Maven Central पर प्रकाशित है और CI, CodeQL, OpenSSF Scorecard तथा Best Practices बैज से लिंक करता है।