منصوبے کے بارے میں

TwelveMonkeys ImageIO جاوا پلیٹ فارم کے javax.imageio پیکج کے لیے پلگ اِنز اور ایکسٹینشنز کا ایک مجموعہ ہے۔ اس کا بیان کردہ مقصد JDK میں شامل نہ ہونے والے تصویری فائل فارمیٹس کی سپورٹ شامل کرنا ہے، تاکہ ایپلیکیشنز "in the wild" دستیاب ڈیٹا پڑھ سکیں اور پرانے فارمیٹس تک رسائی برقرار رکھ سکیں۔ معاون فارمیٹس (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 کے لیے یہ پروجیکٹ توسیعی سپورٹ اور اضافی خصوصیات پیش کرتا ہے۔ استعمال: JARs شامل کرنے کے بعد، پلگ اِنز رن ٹائم پر خودکار طور پر دریافت ہو جاتے ہیں، لہٰذا بنیادی پڑھنا ImageIO.read(file) اور لکھنا ImageIO.write(image, format, file) ہے۔ README میں جدید مثالیں ImageReader/ImageWriter instances حاصل کرنا، ImageReadParam/ImageWriteParam سیٹ کرنا، thumbnails اور metadata پڑھنا، اور مکمل تصویر لوڈ کیے بغیر dimensions معلوم کرنا دکھاتی ہیں۔ اضافی یوٹیلیٹیز میں com.twelvemonkeys.imageio.path.Paths کے ذریعے Adobe clipping path سپورٹ، متعدد filters کے ساتھ ResampleOp تصویری ری سائزنگ آپریشن، اور IndexColorModel میں Floyd-Steinberg dithering کے لیے DiffusionDither شامل ہیں۔ README یہ بھی بیان کرتا ہے کہ خراب تصاویر سے جزوی طور پر قابل استعمال ڈیٹا کیسے پڑھا جائے، ایک destination BufferedImage فراہم کر کے۔ تنصیب: groupId com.twelvemonkeys.imageio کے تحت Maven coordinates (مثلاً imageio-jpeg، imageio-tiff)، یا دستی classpath JARs۔ ویب ایپلیکیشنز کے لیے، پلگ اِن لوڈنگ/ان لوڈنگ سنبھالنے کے لیے IIOProviderContextListener تجویز کیا جاتا ہے، جس کا Jakarta classifier variant بھی دستیاب ہے۔ "fat" JARs بناتے وقت، META-INF/services کے تحت SPI فائلوں کو merge کرنا ضروری ہے (مثلاً Maven Shade ServicesResourceTransformer کے ساتھ)۔ بلڈ Maven (mvn package) استعمال کرتا ہے؛ README Oracle JDK 8.x کو تجویز کردہ بلڈ JDK کے طور پر نوٹ کرتا ہے اور OpenJDK کے تحت ممکنہ test اختلافات کا ذکر کرتا ہے۔ پروجیکٹ Maven Central پر شائع ہوتا ہے اور CI، CodeQL، OpenSSF Scorecard اور Best Practices badges سے لنک کرتا ہے۔