Как лучше всего обрезать изображение?
(получить новые координаты изображения из исходного) с предопределенным 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)
}
}