cekrek/src/main/java/id/zelory/cekrek/extension/BitmapExt.kt
package id.zelory.cekrek.extension
import android.graphics.Bitmap
import java.io.File
import java.io.FileOutputStream
/**
* Created on : August 02, 2020
* Author : zetbaitsu
* Name : Zetra
* GitHub : https://github.com/zetbaitsu
*/
fun Bitmap.saveToFile(
destination: File,
format: Bitmap.CompressFormat = destination.compressFormat(),
quality: Int = 100
) : File {
destination.parentFile?.mkdirs()
var fileOutputStream: FileOutputStream? = null
try {
fileOutputStream = FileOutputStream(destination.absolutePath)
compress(format, quality, fileOutputStream)
} finally {
fileOutputStream?.run {
flush()
close()
}
}
return destination
}
internal fun File.compressFormat() = when (extension.toLowerCase()) {
"png" -> Bitmap.CompressFormat.PNG
"webp" -> Bitmap.CompressFormat.WEBP
else -> Bitmap.CompressFormat.JPEG
}