将低分辨率图片放大至较高分辨率
/**
* 图像超分辨率工具
* */
object ImageSuperResolution {
// 拉伸像素至 5MP
fun resizeBitmapTo5MP(originalBitmap: Bitmap): Bitmap {
//获取原始图片的宽度
val originalWidth = originalBitmap.width
//获取原始图片的高度
val originalHeight = originalBitmap.height
// 计算原始图片的像素数
val originalPixels = originalWidth * originalHeight
Log.d("ImageSuperResolution","originalPixels 原始图片像素数: $originalPixels")
// 计算目标像素数为 5MP
val targetPixels = 5000000
// 如果原始图像已经大于或等于 5MP,直接返回原图
if (originalPixels >= targetPixels) {
return originalBitmap
}
// 计算缩放比例
val scale = Math.sqrt(targetPixels.toDouble() / originalPixels).toFloat()
// 使用 Matrix 缩放图片
val matrix = Matrix()
matrix.postScale(scale, scale)
// 返回缩放后的 Bitmap结果
val bitmapResult = Bitmap.createBitmap(originalBitmap, 0, 0, originalWidth, originalHeight, matrix, true)
Log.d("ImageSuperResolution","resizeBitmapTo5MP bitmapResult: $bitmapResult")
return bitmapResult
}
}