How do I reduce size/resolution of an image before uploading to firebase storage?












-3














I am trying to upload a image to firebase storage but large images are making my app lag/slow so I want to scale down images or are there any other alternatives










share|improve this question






















  • research on image compression. You can compress bitmaps to JPEG or PNG etc. By the way, make sure you upload in a separate thread (use Async task) because you do not want to block your UI thread while uploading
    – TheEngineer
    Nov 22 at 18:47












  • @SURAJ BISHT, did my answer help? I think that compressing the bitmap to a JPEG should solve the issue of making the image smaller so that the app does not lag.
    – Ishaan
    Nov 23 at 4:24
















-3














I am trying to upload a image to firebase storage but large images are making my app lag/slow so I want to scale down images or are there any other alternatives










share|improve this question






















  • research on image compression. You can compress bitmaps to JPEG or PNG etc. By the way, make sure you upload in a separate thread (use Async task) because you do not want to block your UI thread while uploading
    – TheEngineer
    Nov 22 at 18:47












  • @SURAJ BISHT, did my answer help? I think that compressing the bitmap to a JPEG should solve the issue of making the image smaller so that the app does not lag.
    – Ishaan
    Nov 23 at 4:24














-3












-3








-3







I am trying to upload a image to firebase storage but large images are making my app lag/slow so I want to scale down images or are there any other alternatives










share|improve this question













I am trying to upload a image to firebase storage but large images are making my app lag/slow so I want to scale down images or are there any other alternatives







android firebase firebase-storage






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 22 at 17:52









SURAJ BISHT

11




11












  • research on image compression. You can compress bitmaps to JPEG or PNG etc. By the way, make sure you upload in a separate thread (use Async task) because you do not want to block your UI thread while uploading
    – TheEngineer
    Nov 22 at 18:47












  • @SURAJ BISHT, did my answer help? I think that compressing the bitmap to a JPEG should solve the issue of making the image smaller so that the app does not lag.
    – Ishaan
    Nov 23 at 4:24


















  • research on image compression. You can compress bitmaps to JPEG or PNG etc. By the way, make sure you upload in a separate thread (use Async task) because you do not want to block your UI thread while uploading
    – TheEngineer
    Nov 22 at 18:47












  • @SURAJ BISHT, did my answer help? I think that compressing the bitmap to a JPEG should solve the issue of making the image smaller so that the app does not lag.
    – Ishaan
    Nov 23 at 4:24
















research on image compression. You can compress bitmaps to JPEG or PNG etc. By the way, make sure you upload in a separate thread (use Async task) because you do not want to block your UI thread while uploading
– TheEngineer
Nov 22 at 18:47






research on image compression. You can compress bitmaps to JPEG or PNG etc. By the way, make sure you upload in a separate thread (use Async task) because you do not want to block your UI thread while uploading
– TheEngineer
Nov 22 at 18:47














@SURAJ BISHT, did my answer help? I think that compressing the bitmap to a JPEG should solve the issue of making the image smaller so that the app does not lag.
– Ishaan
Nov 23 at 4:24




@SURAJ BISHT, did my answer help? I think that compressing the bitmap to a JPEG should solve the issue of making the image smaller so that the app does not lag.
– Ishaan
Nov 23 at 4:24












1 Answer
1






active

oldest

votes


















0














Here is a function that you can use to do it. You need to pass in the bitmap of your image into the function:



private void doUpload(Bitmap bitmap) {
//Change this to your picture name.
String s = "MyPicture.jpg";
StorageReference storageReference2 = FirebaseStorage.getInstance().getReference(s);

ByteArrayOutputStream baos = new ByteArrayOutputStream();
//Compress the original bitmap down into a JPEG.
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
byte data2 = baos.toByteArray();

//Get an array of the bytes and upload it to Firebase Storage.
UploadTask uploadTask = storageReference2.putBytes(data2);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
makeToast("Exception " + exception.getMessage());
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
makeToast("Picture uploaded.");
}
});
}


This should upload the picture to Firebase Storage. It compresses the image to a JPEG. You can change the name of the picture by changing the value of the String s above. Hope this helps.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53436111%2fhow-do-i-reduce-size-resolution-of-an-image-before-uploading-to-firebase-storage%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Here is a function that you can use to do it. You need to pass in the bitmap of your image into the function:



    private void doUpload(Bitmap bitmap) {
    //Change this to your picture name.
    String s = "MyPicture.jpg";
    StorageReference storageReference2 = FirebaseStorage.getInstance().getReference(s);

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    //Compress the original bitmap down into a JPEG.
    bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
    byte data2 = baos.toByteArray();

    //Get an array of the bytes and upload it to Firebase Storage.
    UploadTask uploadTask = storageReference2.putBytes(data2);
    uploadTask.addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
    makeToast("Exception " + exception.getMessage());
    }
    }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
    makeToast("Picture uploaded.");
    }
    });
    }


    This should upload the picture to Firebase Storage. It compresses the image to a JPEG. You can change the name of the picture by changing the value of the String s above. Hope this helps.






    share|improve this answer


























      0














      Here is a function that you can use to do it. You need to pass in the bitmap of your image into the function:



      private void doUpload(Bitmap bitmap) {
      //Change this to your picture name.
      String s = "MyPicture.jpg";
      StorageReference storageReference2 = FirebaseStorage.getInstance().getReference(s);

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      //Compress the original bitmap down into a JPEG.
      bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
      byte data2 = baos.toByteArray();

      //Get an array of the bytes and upload it to Firebase Storage.
      UploadTask uploadTask = storageReference2.putBytes(data2);
      uploadTask.addOnFailureListener(new OnFailureListener() {
      @Override
      public void onFailure(@NonNull Exception exception) {
      makeToast("Exception " + exception.getMessage());
      }
      }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
      @Override
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
      makeToast("Picture uploaded.");
      }
      });
      }


      This should upload the picture to Firebase Storage. It compresses the image to a JPEG. You can change the name of the picture by changing the value of the String s above. Hope this helps.






      share|improve this answer
























        0












        0








        0






        Here is a function that you can use to do it. You need to pass in the bitmap of your image into the function:



        private void doUpload(Bitmap bitmap) {
        //Change this to your picture name.
        String s = "MyPicture.jpg";
        StorageReference storageReference2 = FirebaseStorage.getInstance().getReference(s);

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        //Compress the original bitmap down into a JPEG.
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte data2 = baos.toByteArray();

        //Get an array of the bytes and upload it to Firebase Storage.
        UploadTask uploadTask = storageReference2.putBytes(data2);
        uploadTask.addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception exception) {
        makeToast("Exception " + exception.getMessage());
        }
        }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        makeToast("Picture uploaded.");
        }
        });
        }


        This should upload the picture to Firebase Storage. It compresses the image to a JPEG. You can change the name of the picture by changing the value of the String s above. Hope this helps.






        share|improve this answer












        Here is a function that you can use to do it. You need to pass in the bitmap of your image into the function:



        private void doUpload(Bitmap bitmap) {
        //Change this to your picture name.
        String s = "MyPicture.jpg";
        StorageReference storageReference2 = FirebaseStorage.getInstance().getReference(s);

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        //Compress the original bitmap down into a JPEG.
        bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
        byte data2 = baos.toByteArray();

        //Get an array of the bytes and upload it to Firebase Storage.
        UploadTask uploadTask = storageReference2.putBytes(data2);
        uploadTask.addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception exception) {
        makeToast("Exception " + exception.getMessage());
        }
        }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
        @Override
        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        makeToast("Picture uploaded.");
        }
        });
        }


        This should upload the picture to Firebase Storage. It compresses the image to a JPEG. You can change the name of the picture by changing the value of the String s above. Hope this helps.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 22 at 19:02









        Ishaan

        8611417




        8611417






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53436111%2fhow-do-i-reduce-size-resolution-of-an-image-before-uploading-to-firebase-storage%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            What visual should I use to simply compare current year value vs last year in Power BI desktop

            How to ignore python UserWarning in pytest?

            Alexandru Averescu