2013-11-01 10 views
5

हैलो स्टैक ओवरफ्लो कॉम्यूनिटी। मुझे छोटे टुकड़ों में बिटमैप को विभाजित करने के संभावित तरीकों पर कुछ जानकारी चाहिए। अधिक महत्वपूर्ण बात यह है कि मुझे निर्णय लेने के लिए कुछ विकल्प चाहिए। मैंने कई पदों की जांच की है और मुझे अभी भी पूरी तरह से विश्वास नहीं है कि क्या करना है।बिटमैप को उन हिस्सों में विभाजित करने के लिए जो बिटमैप्स भी हैं

cut the portion of bitmap

How do I cut out the middle area of ​​the bitmap?

इन दो लिंक कुछ अच्छा विकल्प मैंने पाया है, लेकिन मैं नहीं कर सकते प्रत्येक विधि के सीपीयू और रैम लागत की गणना, या हो सकता है मैं इस गणना के साथ परेशान नहीं करना चाहिए। फिर भी अगर मैं कुछ करने वाला हूं, तो शुरुआत से यह सबसे अच्छा तरीका क्यों नहीं है।

मैं बिटमैप संपीड़न पर कुछ टिप्स और लिंक प्राप्त करने के लिए आभारी हूं, इसलिए शायद मुझे दो तरीकों से बेहतर प्रदर्शन मिल जाएगा।

मैं आपको अग्रिम धन्यवाद देता हूं।

उत्तर

3

आप बिटमैप को भागों में विभाजित करना चाहते हैं। मुझे लगता है कि आप bitmap.say से बराबर भागों को काटना चाहते हैं उदाहरण के लिए आपको बिटमैप से 4 बराबर हिस्सों की आवश्यकता है।

यह एक तरीका है जो बिटमैप को 4 बराबर भागों पर करता है और इसमें बिटमैप्स की सरणी होती है।

public Bitmap[] splitBitmap(Bitmap picture) 
{ 

Bitmap[] imgs = new Bitmap[4]; 
imgs[0] = Bitmap.createBitmap(picture, 0, 0, picture.getWidth()/2 , picture.getHeight()/2); 
imgs[1] = Bitmap.createBitmap(picture, picture.getWidth()/2, 0, picture.getWidth()/2, picture.getHeight()/2); 
imgs[2] = Bitmap.createBitmap(picture,0, picture.getHeight()/2, picture.getWidth()/2,picture.getHeight()/2); 
imgs[3] = Bitmap.createBitmap(picture, picture.getWidth()/2, picture.getHeight()/2, picture.getWidth()/2, picture.getHeight()/2); 

return imgs; 


} 
4

यह फ़ंक्शन आपको बिटमैप को पंक्तियों और स्तंभों की संख्या में विभाजित करने की अनुमति देता है।

उदाहरण बिटमैप [] [] बिटमैप्स = स्प्लिट बिटमैप (बीएमपी, 2, 1); एक दो आयामी सरणी में संग्रहीत एक लंबवत विभाजित बिटमैप बनाएगा। 2 कॉलम 1 पंक्ति

उदाहरण बिटमैप [] [] बिटमैप्स = स्प्लिट बिटमैप (बीएमपी, 2, 2); एक बिटमैप को दो आयामी सरणी में संग्रहीत चार बिटमैप में विभाजित करेगा। 2 कॉलम 2 पंक्तियां

public Bitmap[][] splitBitmap(Bitmap bitmap, int xCount, int yCount) { 
    // Allocate a two dimensional array to hold the individual images. 
    Bitmap[][] bitmaps = new Bitmap[xCount][yCount]; 
    int width, height; 
    // Divide the original bitmap width by the desired vertical column count 
    width = bitmap.getWidth()/xCount; 
    // Divide the original bitmap height by the desired horizontal row count 
    height = bitmap.getHeight()/yCount; 
    // Loop the array and create bitmaps for each coordinate 
    for(int x = 0; x < xCount; ++x) { 
     for(int y = 0; y < yCount; ++y) { 
      // Create the sliced bitmap 
      bitmaps[x][y] = Bitmap.createBitmap(bitmap, x * width, y * height, width, height); 
     } 
    } 
    // Return the array 
    return bitmaps;  
} 
+1

उत्तर देने पर, आपको समझाने की कोशिश करनी चाहिए बल्कि कोड का एक टुकड़ा दें। – ThP

+0

भविष्य में जो कुछ भी आप करते हैं, उससे संबंधित कुछ पाठों के साथ कृपया अपने उत्तरों का उत्तर दें। –

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

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