предположим, что это нормальный пейзаж Фотография имеет вертикальный треугольник. Но отображение фотографий в ImageView показывает Перевернутая Пейзажная фотография с перевернутым треугольником
--------
\ /
\ /
\ /
Это можно сделать с помощью ExifInterface, чтобы определить, есть ли у Пейзажа поворот.
Предполагается, что эта фотография обнаружена. с вращением
проблема:
Как перевернуть перевернутый треугольник Пейзажное фото в Пейзажное фото с правым верхним треугольником? или как повернуть эту перевернутую пейзажную фотографию обратно в ее обычное вертикальное положение, используя холст Перед рисованием текста на нем?
вот мой код:
private fun ScrapImgView(strName:String,strAddr:String,strCtcName:String){
val bitmap1 = (imgViewResult.getDrawable() as BitmapDrawable).getBitmap()
var h = bitmap1.height
var w = bitmap1.width
//-1- create Canvas with size (w, h , Bitmap.conf)
val newbitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888)
val canvas = Canvas(newbitmap)
//-- draw background color
canvas.drawColor(Color.GREEN)
//-- Assumed that this Landscape photo is detected with rotation
if (b_Rotate180){
??? How to use canvas to draw back to Upright Triangle
}else{
canvas.drawBitmap(bitmap1, 0F, 0F, null)
}
//--3 : rec (x,y, width, height)
val rectangle = Rect(10, 540, 1100, 1000)
//-- create color for text
val paint = Paint()
paint.isAntiAlias()
paint.setColor(ContextCompat.getColor(applicationContext,R.color.royalblue))
paint.alpha = 126
val paintText = Paint(Paint.ANTI_ALIAS_FLAG)
paintText.setTextSize(30F)
paintText.setColor(ContextCompat.getColor(applicationContext,R.color.Lightgray))
paintText.setStyle(Paint.Style.FILL)
//-- Draw the Rectangle
canvas.drawRect(rectangle, paint)
val rectText = Rect()
paintText.getTextBounds(strName, 0, strDisplayAllText.length, rectText)
canvas.drawText(
strName,
20F, 630F, paintText
)
canvas.drawText(
strAddr,
20F, 720F, paintText
)
canvas.drawText(
strCtcName,
20F, 810F, paintText
)
runOnUiThread {
imgResult.setImageBitmap(newbitmap)
}
}