How can i get bitmap from camera on android?
<p><strong>CODE:</strong></p>

<pre><code>public void startCameraActivity(){
        Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        if (cameraIntent.resolveActivity(getActivity().getPackageManager()) != null) {
            startActivityForResult(cameraIntent, 1000);
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(resultCode == Activity.RESULT_OK) {
            if (requestCode == 1000){
                File photo = new File(Environment.getExternalStorageDirectory(), ".camera.jpg");
                OutputStream out = null;
                String imagePath = data.getData().getPath();
                Bitmap image = BitmapFactory.decodeFile(imagePath);
                ExifInterface exif = null;

                try {
                    exif = new ExifInterface(imagePath);

                    int exifOrientation = exif.getAttributeInt(
                            ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
                    int exifDegree = exifOrientationToDegrees(exifOrientation);
                    image = rotate(image, exifDegree);
                    photo.createNewFile();
                    out = new FileOutputStream(Environment.getExternalStorageDirectory());
                    image.compress(Bitmap.CompressFormat.PNG, 100, out);
                    out.close();
                } catch (IOException e) {
                    Toast.makeText(getContext(), "hello error", Toast.LENGTH_LONG).show();
                }
                returnUri = Uri.fromFile(photo);
            }
            Glide.with(this)
                    .load(returnUri)
                    .into(mImageview);
        }
    }
</code></pre>

<p><strong>It's for rotate image</strong> </p>

<pre><code>public int exifOrientationToDegrees(int exifOrientation)
    {
        if(exifOrientation == ExifInterface.ORIENTATION_ROTATE_90)
        {return 90;}
        else if(exifOrientation == ExifInterface.ORIENTATION_ROTATE_180)
        {return 180;}
        else if(exifOrientation == ExifInterface.ORIENTATION_ROTATE_270)
        {return 270;}
        return 0;
    }
    public Bitmap rotate(Bitmap bitmap, int degrees)
    {
        if(degrees != 0 &amp;&amp; bitmap != null)
        {
            Matrix m = new Matrix();
            m.setRotate(degrees, (float) bitmap.getWidth() / 2,
                    (float) bitmap.getHeight() / 2);

            try
            {
                Bitmap converted = Bitmap.createBitmap(bitmap, 0, 0,
                        bitmap.getWidth(), bitmap.getHeight(), m, true);
                if(bitmap != converted)
                {
                    bitmap.recycle();
                    bitmap = converted;
                }
            }
            catch(OutOfMemoryError ex)
            {
            }
        }
        return bitmap;
    } 
</code></pre>

<p>I made a code that get picture from camera.</p>

<p>But that picture which has came from camera has incorrect direction.</p>

<p>So i searched to rotate that image. </p>

<p>but above code do not works.</p>

<p><strong>Where is problem?
How can i fix it?</strong></p>

<p>Android monitor says </p>

<pre><code>java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=66536, result=-1, data=Intent { act=inline-data dat=content://media/external/images/media/8464 flg=0x1 (has extras) }} to activity {~~!@.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference


Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
</code></pre>

<p><strong>EDIT</strong> full logcat </p>

<pre><code>11-03 11:21:42.060 16104-16104/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.keepair.www.pinair, PID: 16104
                                                   java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=66536, result=-1, data=Intent { act=inline-data dat=content://media/external/images/media/8465 flg=0x1 (has extras) }} to activity {com.keepair.www.pinair/com.keepair.www.pinair.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
                                                       at android.app.ActivityThread.deliverResults(ActivityThread.java:4173)
                                                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4216)
                                                       at android.app.ActivityThread.access$1400(ActivityThread.java:181)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523)
                                                       at android.os.Handler.dispatchMessage(Handler.java:102)
                                                       at android.os.Looper.loop(Looper.java:145)
                                                       at android.app.ActivityThread.main(ActivityThread.java:6117)
                                                       at java.lang.reflect.Method.invoke(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:372)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
                                                    Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.graphics.Bitmap.compress(android.graphics.Bitmap$CompressFormat, int, java.io.OutputStream)' on a null object reference
                                                       at com.keepair.www.pinair.GreenFragment.onActivityResult(GreenFragment.java:296)
                                                       at android.support.v4.app.FragmentActivity.onActivityResult(FragmentActivity.java:165)
                                                       at android.app.Activity.dispatchActivityResult(Activity.java:6632)
                                                       at android.app.ActivityThread.deliverResults(ActivityThread.java:4169)
                                                       at android.app.ActivityThread.handleSendResult(ActivityThread.java:4216) 
                                                       at android.app.ActivityThread.access$1400(ActivityThread.java:181) 
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523) 
                                                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                       at android.os.Looper.loop(Looper.java:145) 
                                                       at android.app.ActivityThread.main(ActivityThread.java:6117) 
                                                       at java.lang.reflect.Method.invoke(Native Method) 
                                                       at java.lang.reflect.Method.invoke(Method.java:372) 
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
                                                       at 
</code></pre>

<p>com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) </p>