/SiliCompressor

A powerful, flexible and easy to use Video and Image compression library for Android.

Primary LanguageJavaApache License 2.0Apache-2.0

SiliCompressor

A powerful, flexible and easy to use Video and Image compression library for Android.

Description

Image

It's usually said that "A picture is worth a thousand words". Images adds flair and beauty to our android apps, but we usaully have problems with these images due to thier large size. With SiliCompressor you can now compress and use your images more smoothly.

Video

Due to the high resolution of our Smartphone cameras and cameras from other devices, Video files have become large in size and thus difficult for it to be shared with others on social apps, social media and even when we need to upload it on our server. With SiliCompressor you can now compress you video file while maintaining it quality.

Credit

The image compressor part of this project is inspired from Void Canvas blog from which the core part of the compressor was done. For the Video Compression part of this project, credit goes to Jorge E. Hernandez (@lalongooo) whose codes was used for the core part of the video compressor module.

Usage

To effectively use this library, you must make sure you have added the following permission to your project.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Compress a video file and return the file path of the new video

String filePath = SiliCompressor.with(Context).compressVideo(videoUriString, destinationDirectory);
String filePath = SiliCompressor.with(Context).compressVideo(videoContentUri, destinationDirectory);

Compress an image and return the file path of the new image

String filePath = SiliCompressor.with(Context).compress(uriString, destinationDirectory);

Compress an image and return the file path of the new image while deleting the source image

String filePath = SiliCompressor.with(Context).compress(uriString, destinationDirectory, true);

Compress an image drawable and return the file path of the new image

String filePath = SiliCompressor.with(Context).compress(R.drawable.icon);

Compress an image and return the bitmap data of the new image

Bitmap imageBitmap = SiliCompressor.with(Context).getCompressBitmap(imageUriString);

Compress an image and return the bitmap data of the new image while deleting the source image

Bitmap imageBitmap = SiliCompressor.with(Context).getCompressBitmap(imageUriString, true);

Download

Gradle

implementation 'com.iceteck.silicompressorr:silicompressor:2.2.4'
Maven
<dependency>
  <groupId>com.iceteck.silicompressorr</groupId>
  <artifactId>silicompressor</artifactId>
  <version>2.2.4</version>
  <type>aar</type>
</dependency>
Ivy
<dependency org='com.iceteck.silicompressorr' name='silicompressor' rev='2.2.4'>
  <artifact name='silicompressor' ext='pom' ></artifact>
</dependency>

Snapshots of the development version are available in Sonatype's snapshots repository.

License

Copyright 2016 Teyou Toure Nathan

Licensed under the Apache License, Version 2.0 (the "License") and GNU General Public License v2.0;

you may not use this file except in compliance with the Licenses. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0 and https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.