Kecilin Mediacompress
Kecilin Mediacompress.
Installation
Step 1
dependencies:
kecilin_mediacompress: <latest_version>
or run this command :
flutter pub add kecilin_mediacompress
import the package in your code:
import 'package:kecilin_mediacompress/kecilin_mediacompress.dart';
Step 2
Add token to gradle.properties
authToken = AUTHENTICATION_TOKEN
Step 3
Then use authToken as username in your build.gradle (root project)
allprojects {
repositories {
...
maven {
url "https://jitpack.io"
credentials { username authToken }
}
}
}
Step 4
Add authKecilin to manifest android
<application>
<meta-data
android:name="id.kecilin.mediacompress.AUTH_KECILIN"
android:value="AUTH_KECILIN" />
<activity>
...
<activity/>
</application>
Usage
Image
Image Compress
Compress Image input File and result as File
Future<File> compressAndGetFile(File file) async{
final option = CompressOption()
option.outputType = OutputType.file;
final ResultImageCompress result = await KecilinMediacompress.compressImageWithFile(file: file,option: option);
result.resultPath;
return File(result.resultPath);
}
Compress Image input Uint8List and result as File
Future<File> compressUint8AndGetFile(Uint8List uint8List) async{
final option = CompressOption()
option.outputType = OutputType.file;
final ResultImageCompress result = await KecilinMediacompress.compressImageWithUint8(uint8List: uint8List,option: option);
result.resultPath;
return File(result.resultPath);
}
API
ResultImageCompress
Result ImageCompress is a class used to receive the results of image compression. It contains several variables.
class ResultImageCompress {
//result compress based on method you choose
String resultPath ="";
Uint8List? resultUint8List;
//info duration compress
String formattedDuration = "";
double durationInMillisSeconds =0.0;
//info size compress
double originalSizeInBytes = 0.0;
String formattedOriginalSize = "";
double compressedSizeInBytes = 0.0;
String formattedCompressedSize = "";
}
CompressOption
Compress Option is a class used to select which option to use.
class CompressOption {
Quality quality;
Resolution resolution;
OutputType outputType;
}
Resolution aims to set the resolution whether it is the same as the input image or not, meaning if it is res75 then the resolution drops by 25% from the previous original resolution, the ratio remains unchanged (default: res100)
enum Resolution {
res100,res75,res65,res55,res50
} //(default : res100)
Quality aims to set the compression capability, the higher the compression results will be more optimal (default: medium)