تبلیغات

کتابخانه Compressor اندروید – فشرده سازی تصاویر در برنامه نویسی اندروید

کتابخانه Compressor اندروید – فشرده سازی تصاویر در برنامه نویسی اندروید

فشرده سازی تصاویر در برنامه نویسی اندروید با کتابخانه zetbaitsu/Compressor


فشرده‌سازی تصاویر گرچه بدون استفاد از کتابخانه نیز ممکن است، ولی طبیعتا فشرده‌سازی عادی ممکن است از کیفیت تصاویر به شدت بکاهد؛ که در این زمینه، کتابخانه فشرده‌سازی سبک و قدرتمند zetbaitsu/Compressor، راه حلی جدید برای انجام این کار است.

Compressor به شما اجازه می‌دهد تا تصاویر بزرگ را بدون از دست دادن کیفیت زیاد، کم‌حجم کرده و مورد استفاده قرار دهید.

فراخوانی Compressor

به فایل gradle خود رفته و کتابخانه را اضافه کنید:

dependencies {
    implementation 'id.zelory:compressor:2.1.0'
}

روش‌ استفاده در کد

از دستور زیر، برای فشرده‌سازی یک فایل تصویری استفاده کنید:

compressedImageFile = new Compressor(this).compressToFile(actualImageFile);

دستور زیر نیز برای فشرده‌سازی فایل به Bitmap مورد استفاده قرار می‌گیرد:

compressedImageBitmap = new Compressor(this).compressToBitmap(actualImageFile);

موارد بالا، از تنظیمات پیشفرض جهت فشرده‌سازی استفاده می‌کنند که شما برای خود می‌توانید شخصی‌سازی‌های دلخواهتان را نیز انجام دهید:

compressedImage = new Compressor(this)
            .setMaxWidth(640)
            .setMaxHeight(480)
            .setQuality(75)
            .setCompressFormat(Bitmap.CompressFormat.WEBP)
            .setDestinationDirectoryPath(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_PICTURES).getAbsolutePath())
            .compressToFile(actualImage);

و اگر چنانچه بخواهید از قابلیت asynchronous جاوا استفاده کرده و فشرده سازی را به صورت asynchronously انجام دهید، می‌توانید به صورت زیر عمل نمایید:

new Compressor(this)
        .compressToFileAsFlowable(actualImage)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Consumer<File>() {
            @Override
            public void accept(File file) {
                compressedImage = file;
            }
        }, new Consumer<Throwable>() {
            @Override
            public void accept(Throwable throwable) {
                throwable.printStackTrace();
                showError(throwable.getMessage());
            }
        });

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

یه کلاسِ تعریف نشده ... فقط برای ارتباط کاری تلگرام پیام بدید ...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک