Как добавить текст/водяной знак в видео с использованием API Overlayeffect Camerax?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить текст/водяной знак в видео с использованием API Overlayeffect Camerax?

Сообщение Anonymous »

Я пытаюсь добавить текст водяного знака в видео во время записи с использованием API Overlayeffect Camerax. />
Вместо этого я выбрал API Effect Camerax, потому что он обеспечивает большую гибкость, позволяя рендеринг в реальном времени непосредственно на предварительный просмотр и записанное видео. /> [*] Водяной знак появляется неправильно вращается .
Я применяю sensortobuffertransform , но, похоже, это не правильно выравнивает текст. Нужны ли мне дополнительные преобразования? < /Li>
< /ol>
// Simple CameraX Effect implementation
private val handler = Handler(Looper.getMainLooper())
private val overlayEffect = OverlayEffect(
VIDEO_CAPTURE or PREVIEW,
0,
handler
) {
Log.e("Error", "overlayEffect error")
}.apply {
val textPaint = Paint().apply {
color = Color.RED
textSize = 50f
}

clearOnDrawListener()

// Rendering the text on the overlay
setOnDrawListener {
it.overlayCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR) // Clear previous frame
it.overlayCanvas.setMatrix(it.sensorToBufferTransform) // Apply transformation to align with the camera sensor

val text = "Watermark 12345"
val centerX = it.overlayCanvas.width / 2f
val centerY = it.overlayCanvas.height / 2f

it.overlayCanvas.drawText(text, centerX, centerY, textPaint) // Draw text at the center

true
}
}

private val useCaseGroupBuilder = UseCaseGroup.Builder()
.addUseCase(cameraPreviewUseCase)
.addUseCase(videoCapture)
.addEffect(overlayEffect) // Attach overlay effect to the camera pipeline

// Initialize and update the camera preview surface
private val cameraPreviewUseCase = Preview.Builder()
.setTargetRotation(Surface.ROTATION_0)
.build()
.apply {
setSurfaceProvider { newSurfaceRequest ->
_state.update { it.copy(surfaceRequest = newSurfaceRequest) }
}
}

// Compose UI: Rendering surface with CameraXViewfinder
state.surfaceRequest?.let { request ->
CameraXViewfinder(
surfaceRequest = request,
modifier = modifier,
implementationMode = ImplementationMode.EMBEDDED,
)
}
< /code>
скриншоты: < /strong>
Back Camera
Front Camera < /p>
Что я ищу:
Как я могу правильно поместить и ориентироваться как на передней, так и на спине?>

Подробнее здесь: https://stackoverflow.com/questions/795 ... effect-api
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»