2012-07-06 17 views
6

को कैसे स्केल कर सकता हूं मैंने this question देखा है, लेकिन ऐसा लगता है कि मेरे पास वास्तव में उस प्रश्न का उत्तर नहीं है। मेरे पास एक, छवि फ़ाइल है, जो कि कोई संकल्प हो सकता है। मुझे उस छवि को BufferedImage ऑब्जेक्ट को एक विशिष्ट रिज़ॉल्यूशन पर लोड करने की आवश्यकता है (कहें, इस उदाहरण के लिए, 800x800)। मुझे पता है कि छवि वर्ग getScaledInstance() का उपयोग छवि को नए आकार में स्केल करने के लिए कर सकता है, लेकिन फिर मैं यह नहीं समझ सकता कि इसे BufferedImage पर वापस कैसे प्राप्त किया जाए। क्या एक विशिष्ट आकार में बुफर्ड छवि को स्केल करने का कोई आसान तरीका है?मैं BufferedImage

नोट मैं छवि को एक विशिष्ट कारक से स्केल नहीं करना चाहता, मैं एक छवि लेना चाहता हूं और एक विशिष्ट आकार बनाना चाहता हूं।

+0

** मैं एक विशिष्ट पहलू से छवि को मापना नहीं करना चाहते, मैं एक छवि लेने के लिए और बनाना चाहते एक विशिष्ट आकार है ** यह आसानी से किया जा सकता है: 'कारक = मूल आकार \ नया आकार;' – GETah

उत्तर

8

कुछ इस तरह? :

/** 
* Resizes an image using a Graphics2D object backed by a BufferedImage. 
* @param srcImg - source image to scale 
* @param w - desired width 
* @param h - desired height 
* @return - the new resized image 
*/ 
private BufferedImage getScaledImage(Image srcImg, int w, int h){ 
    BufferedImage resizedImg = new BufferedImage(w, h, BufferedImage.TRANSLUCENT); 
    Graphics2D g2 = resizedImg.createGraphics(); 
    g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); 
    g2.drawImage(srcImg, 0, 0, w, h, null); 
    g2.dispose(); 
    return resizedImg; 
} 
4

आप आकार आप चाहते हैं की एक नई BufferedImage बना सकते हैं और फिर नए रूप में मूल चित्र की स्केल पेंट करते हैं:

BufferedImage resizedImage = new BufferedImage(new_width, new_height, BufferedImage.TYPE_INT_ARGB); 
Graphics2D g = resizedImage.createGraphics(); 
g.drawImage(image, 0, 0, new_width, new_height, null); 
g.dispose(); 
1

इस वेबसाइट को देखने के Link1

या यह Link2

+0

जबकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, [यह बेहतर होगा] (// meta.stackoverflow.com/q/8259) के आवश्यक भागों को शामिल करने के लिए यहां जवाब, और संदर्भ के लिए लिंक प्रदान करते हैं। –

+0

इनपुट @ karlRichter के लिए धन्यवाद। मैं निश्चित रूप से जल्द ही उत्तर अपडेट कर दूंगा। – codeDEXTER

संबंधित मुद्दे