Я просматриваю изображение с камеры для просмотра текстуры с помощью cameraX. Как нарисовать прямоугольник на экране по имеющимся у меня координатам? Я не хочу сложной функции. Я просто хочу нарисовать прямоугольник. Я использую kotlin и android studio 4.0.
1 ответ
Я бы выбрал ImageView, перекрывающий Textureview в том же xml. Это изображение загрузит прозрачное растровое изображение, на котором будет нарисован только прямоугольник. Если у вас есть координаты, вам нужно сделать:
val myRectPaint = Paint()
myRectPaint.strokeWidth = 5F
myRectPaint.color = Color.RED
myRectPaint.style = Paint.Style.STROKE
// Create a Canvas object for drawing on the original bitmap provided
val tempBitmap =
Bitmap.createBitmap(bitmap!!.width, bitmap.height, Bitmap.Config.ARGB_8888)
val tempCanvas = Canvas(tempBitmap)
tempCanvas.drawBitmap(bitmap, 0F, 0F, null)
tempCanvas.drawRoundRect(
RectF(x1.toFloat(), y1.toFloat(), x2.toFloat(), y2.toFloat()),
2f,
2f,
myRectPaint
)
// Use this to widen picture on top or bottom
val croppedFaceBitmap =
Bitmap.createBitmap(tempBitmap, x1, y1, x2, y2)
В любом случае вы также можете следовать этому примеру из tenorflow github, где при обнаружении объекта рисуются круглые прямоугольники.
Надеюсь я помог
Похожие вопросы
Связанные вопросы
Новые вопросы
android
Android - это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфоны, планшеты, автомобили, телевизоры, одежда, стекло, IoT). Для тем, связанных с Android, используйте специальные теги Android, такие как android-intent, android-activity, android-адаптер и т. Д. Для вопросов, не связанных с разработкой или программированием, но связанных с платформой Android, используйте эту ссылку: https: // android.stackexchange.com .