मैं combine two Bitmap Images
पर एक विधि का उपयोग कर रहा हूं और SDCard
में लिख रहा हूं। अप्प। एमुलेटर में ठीक काम करता है, लेकिन जब मैं रियल डिवाइस पर में निष्पादित करने के लिए करने की कोशिश की यह इस लाइन cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
एक new Bitmap
जिस पर मैं दोनों छवियों कि Canvas
का उपयोग कर जोड़ा जा करने के लिए कर रहे हैं आकर्षित करेगा बनाने के लिए है कि कम से Null Pointer Exception
थ्रू हुए।दो बिटमैप छवियों के संयोजन में शून्य सूचक अपवाद
अब, combineImages(Bitmap background, Bitmap foreground)
में पहला तर्क Bitmap from Camera
चित्र और second is the forefround Gallery item
है। बिटमैप कैमरा से ली गई एक static Bitmap
मुझे लगता है कि केवल एक चीज है कि मुझे मुसीबत में चल रहा है है है। तो, किसी ने मुझे एक तस्वीर तो यह है कि मैं किसी भी मुद्दे जो इसे आगे का उपयोग कर नहीं है Camera
से एक temporary
भंडारण के रूप में लिया बचाने के लिए एक अच्छा समाधान दे सकते हैं।
public void combineImages(Bitmap background, Bitmap foreground) {
Bitmap cs = null;
int width = 0, height = 0;
width = background.getWidth();
height = background.getHeight();
cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
Canvas comboImage = new Canvas(cs);
comboImage.drawBitmap(background, 0, 0, null);
comboImage.drawBitmap(foreground, 100, 300, null);
String tmpImg = String.valueOf(System.currentTimeMillis()) + ".png";
OutputStream os = null;
try {
os = new FileOutputStream(Environment.getExternalStorageDirectory() + File.separator + tmpImg);
cs.compress(CompressFormat.PNG, 100, os);
} catch (IOException e) {
e.printStackTrace();
}
}
यहाँ मेरी Logcat आउटपुट है जब मैं रियल डिवाइस पर की कोशिश की। (एलजी ऑप्टिमस ब्लैक पी-970)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): FATAL EXCEPTION: main
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): java.lang.NullPointerException
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.graphics.Bitmap.createBitmap(Bitmap.java:469)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at com.cam.GalleryImageSelected.combineImages(GalleryImageSelected.java:66)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at com.cam.GalleryImageSelected$1.onClick(GalleryImageSelected.java:90)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:874)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.widget.AdapterView.performItemClick(AdapterView.java:294)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.widget.ListView.performItemClick(ListView.java:3387)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2408)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.os.Handler.handleCallback(Handler.java:587)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.os.Handler.dispatchMessage(Handler.java:92)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.os.Looper.loop(Looper.java:123)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at android.app.ActivityThread.main(ActivityThread.java:4627)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at java.lang.reflect.Method.invokeNative(Native Method)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at java.lang.reflect.Method.invoke(Method.java:521)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
10-04 12:36:08.329: ERROR/AndroidRuntime(16356): at dalvik.system.NativeStart.main(Native Method)
क्या मुझे नीचे वोट के कारण का पता चल सकता है? –
क्या आप वाकई चौड़ाई और लाइन सीएस = Bitmap.createBitmap (चौड़ाई, ऊंचाई, Bitmap.Config.ARGB_8888) में ऊंचाई रहे हैं; 0 से अधिक हैं। बस उस पंक्ति में एक और त्रुटि के बारे में सोचने के लिए प्रतीत नहीं हो सकता है। – blessenm
हाँ, क्योंकि ऊंचाई और चौड़ाई चित्र कैमरे से ली गई से आता है तो जाहिर है कि वे से 0. धन्यवाद अधिक से अधिक कर रहे हैं। –