裁剪图像的最佳方法是什么?
(从原始坐标接收新的图像坐标)与预定义的ViewPort?使用中心缩放 例如,如何基于ViewPort 16:9计算新的宽度和高度?
我们如何应用视口并接收尺寸,然后将其居中放置:
val fistXCoordinate = (originalWidth - newWidth) / 2
fun getCropParameters(image: File): List<CropParameter> {
val decodedFile = BitmapFactory.decodeFile(image.absolutePath)
// calc
return listOf(
CropParameter(CropParameter.ViewPort.CROP_16_9, 0, 0, 0, 0),
CropParameter(CropParameter.ViewPort.CROP_9_16, 0, 0, 0, 0),
CropParameter(CropParameter.ViewPort.CROP_4_3, 0, 0, 0, 0))
}
data class CropParameter(val viewPort: ViewPort, val left: Int, val right: Int, val top: Int, val bottom: Int) {
enum class ViewPort(val widthRatio: Float, val heightRatio: Float) {
CROP_16_9(16F, 9F),
CROP_9_16(9F, 16F),
CROP_4_3(4F, 3F)
}
}