Android – Cómo recortar la previsualización de la cámara con TextureView
Tengo una vista previa que es WpxHp, quiero tomar imágenes HXW, por lo tanto, quiero que el usuario vea una ventana de vista previa que tiene la misma relación de aspecto de la imagen que voy a tomar, no el de la vista previa. ¿Cómo puedo recortar la vista previa con el TextureView?
editar
- Android, cuadros de vista previa de la cámara
- Grabación de vídeo de un servicio
- SurfaceView con vista previa de cámara no se destruye
- Android Camera 2, cómo recortar tamaño de vista previa
- ¿Existe una manera de obtener una vista previa de un fragmento que se utiliza en otra vista en IntelliJ IDEA 12?
lo que pensé es utilizar una matriz de escala para distorsionar la imagen para cmpensate para el cambio de tamaño TextureView, permítanme explicar mejor:
Tengo un tamaño de vista previa de la imagen (imagen) que es (W, H). Por lo tanto, necesito cambiar el tamaño de TextureView a (W, H). Esto implica una distorsión que simplemente es un escalamiento lineal no uniforme representable por la matriz S. Por lo tanto, si escala la imagen con inv (S) antes de cambiar el tamaño de la vista debería obtener las mismas dimensiones originales de la vista previa (por lo tanto, la misma relación de aspecto) pero con el TextureView redimensionado y esto es equivalente a un cultivo. He intentado y parece que funciona, pero estoy buscando una forma alternativa
- Tesseract de OCR para Android: uso de datos de objetos Pixa para mostrar cuadros delimitadores
- ¿Cómo obtener 720p Android Camera Preview Data?
- Convertir el marco de vista previa en un mapa de bits
- Ver la vista previa del cajón de navegación
- Android: cómo mostrar la vista previa de la cámara con devolución de llamada?
- Cómo hacer la aplicación WhiteList en modo Doze Android 6.0
- Teclado personalizado sombra clave de teclado eliminar
- Animación superpuesta a una actividad de la cámara
Lo único que he logrado hacer y que funciona bien es añadir una escala.
Quería crear un textureview con una parte de la salida de la cámara, pero no pude hacer eso sin dejar que la vista previa para obtener escalado.
Así que después de decidir cuál es la mejor resolución para la relación cámara / pantalla para iniciar la captura de obtener la relación de escala entre la altura de captura de la cámara y la altura que quiero mostrar.
mPreviewSize = chooseOptimalSize(...); int viewHeight = getDP(this, R.dimen.videoCaptureHeight); float scaleY = mPreviewSize.getHeight() / viewHeight; setScaleY(scaleY);
- ¿Cómo Android Volley detener / limpieza de sus hilos de despachador
- ¿Cómo utilizar el diseño de material de acción barra de navegación de cajón animación de conmutación?