मैं वास्तव में की सिफारिश करेंगे imgscalr एक नज़र देना।
यह एक अपाचे 2 लाइसेंस के तहत जारी की है GitHub पर होस्ट, वेब अनुप्रयोगों पहले से ही के एक मुट्ठी भर में तैनात कर दिया, एक बहुत ही सरल है, लेकिन pedantically documented API, कोड है कि पारदर्शी रूप से आप के लिए JDK में लगभग 2 प्रमुख छवि कीड़े काम करता है कि आप कभी भी ध्यान देंगे कि यदि आप स्केल ऑपरेशन या भयानक दिखने वाले परिणामों के बाद अचानक "काला" छवियां प्राप्त करना शुरू करते हैं, तो आपको जावा में उपलब्ध सर्वोत्तम संभव दिखने वाले परिणाम मिलते हैं, मेवेन के साथ-साथ एक ज़िप के माध्यम से भी उपलब्ध है और केवल एक एकल वर्ग
बुनियादी उपयोग इस तरह दिखता है:
BufferedImage img = ImageIO.read(...); // load image
BufferedImage scaledImg = Scalr.resize(img, 320);
यह सबसे सरल कॉल जहां पुस्तकालय गुणवत्ता पर एक सबसे लगता है कि कर देगा, अपनी छवि अनुपात का सम्मान, और एक 320x320 बाउंडिंग बॉक्स के भीतर परिणाम फिट है। ध्यान दें, बाउंडिंग बॉक्स केवल अधिकतम डब्ल्यू/एच है, क्योंकि आपकी छवि अनुपात को सम्मानित किया जाता है, परिणामी छवि अभी भी इसका सम्मान करेगी, 320x200 कहें।
यदि आप स्वचालित मोड को ओवरराइड करना चाहते हैं और इसे आपको सबसे अच्छा दिखने वाला परिणाम देने के लिए मजबूर करना चाहते हैं और परिणामस्वरूप बहुत हल्के एंटी-एलियास फ़िल्टर भी लागू करते हैं, तो यह बेहतर दिखता है (विशेष रूप से थंबनेल के लिए अच्छा), कॉल इस तरह दिखेगा:
BufferedImage img = ImageIO.read(...); // load image
BufferedImage scaledImg = Scalr.resize(img, Method.QUALITY,
150, 100, Scalr.OP_ANTIALIAS);
ये सभी उदाहरण हैं, एपीआई व्यापक है और सुपर-सरल उपयोग मामलों से सबकुछ बहुत विशिष्ट है।आप छवि पर लागू होने के लिए अपने स्वयं के BufferedImageOps में भी पास कर सकते हैं (और लाइब्रेरी स्वचालित रूप से आपके लिए 6-वर्षीय BufferedImageOp जेडीके बग को ठीक करता है!)
जावा में छवियों को स्केल करने के लिए बहुत कुछ है सफलतापूर्वक लाइब्रेरी करता है आपके लिए, उदाहरण के लिए हमेशा छवि को सर्वोत्तम ऑपरेटिंग आरजीबी या एआरजीबी छवि प्रकारों में से एक में रखते हुए इसे चालू करते समय रखें। कवर के तहत जावा 2 डी छवि प्रसंस्करण पाइपलाइन किसी भी छवि संचालन के लिए उपयोग की जाने वाली छवि प्रकार खराब रूप से समर्थित होने पर एक निम्न सॉफ्टवेयर पाइपलाइन पर वापस आती है।
यदि सभी जो सिरदर्द की तरह लगते हैं, तो यह है ... यही कारण है कि मैंने पुस्तकालय लिखा और इसे खोल दिया, इसलिए लोग अपनी छवियों का आकार बदल सकते थे और बिना किसी चिंता के अपने जीवन के साथ आगे बढ़ सकते थे यह।
उम्मीद है कि मदद करता है।
आपके द्वारा उद्धृत उदाहरण 'getScaledInstance()' का उपयोग कर रहा है, AffineTransform नहीं। तो यह कौन है? मैंने मिश्रित समीक्षा पढ़ी है कि 'getScaledInstance' निष्पादक के रूप में नहीं है ... – gdbj