image loses quality

57 views
Skip to first unread message

Jorge Leonardo Gamarra Ospino

unread,
Apr 24, 2021, 7:21:06 PM4/24/21
to Android CameraX Discussion Group
Hello group, I am creating an app that has the function of taking a photo and saving it by pressing a button, the problem is that when saving it, the image loses quality.
You can help me by explaining how I can take a photo and save it without losing its quality.
I share my repository:


my code :

private fun savePicture() {
var fos: OutputStream? = null
var file: File? = null

//Metodo para verificar el nivel de la API(Recientes)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
val resolver = this.contentResolver
val fileName = ("${System.currentTimeMillis()}${"Image_Example"}")
//System.currentTimeMillis().toString() + ("Image_Exmple")

//Metodo RELATIVE_PATH crea un folder para las img en la galeria
val values = ContentValues().apply {
put(MediaStore.Images.Media.DISPLAY_NAME, fileName)
put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg")
put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures/MyApp")
put(MediaStore.Images.Media.IS_PENDING, 1)

}

//Metodo para guardar la img en almacenamiento externo
val collection = MediaStore.Images.Media.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
val imageUri = resolver.insert(collection, values)

try {
fos = imageUri?.let { resolver.openOutputStream(it) }
} catch (e: FileNotFoundException) {
e.printStackTrace()
}

values.clear()
values.put(MediaStore.Images.Media.IS_PENDING, 0)
if (imageUri != null) {
resolver.update(imageUri, values, null, null)
}

} else {

val imageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES).toString()
val fileName = ("${System.currentTimeMillis()}${".jpg"}")

file = File(imageDir, fileName)
try {
fos = FileOutputStream(file)
} catch (e: FileNotFoundException) {
e.printStackTrace()
}

}
//Metodo para darle calidad a la imagen
val save: Boolean = bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos)
if (save) {
Toast.makeText(this, "Picture save successfully", Toast.LENGTH_SHORT).show()
}

fos?.run {
flush()
close()
}

if (fos != null) {
try {
fos.flush()
fos.close()

} catch (e: IOException) {
e.printStackTrace()
}
}

if (file != null) {
//Metodo para buscar nuevos directorios en la galeria y colocar los datos de la img antes descritos
MediaScannerConnection.scanFile(this, arrayOf(file.toString()), null, null)
}

}

Leo Huang

unread,
Apr 26, 2021, 2:25:17 PM4/26/21
to Jorge Leonardo Gamarra Ospino, Android CameraX Discussion Group
Hi, 

From the project, there is no information about the usage of CameraX.

However, I can see the bitmap instance in the project is from 

   "bitmap = data?.extras?.get("data") as Bitmap" 


If you want to get a full size photo, you can refer to https://developer.android.com/training/camera/phoobasics#TaskPath,

Regards

Jorge Leonardo Gamarra Ospino <jgam...@misena.edu.co> 於 2021年4月25日 週日 上午7:21寫道:

Declinación de Responsabilidades: Los servicios de MISENA son soportados tecnológicamente por © Google y ofrecidos por el Servicio Nacional de Aprendizaje – SENA de manera gratuita a los aprendices e instructores de programas de formación titulada, las opiniones que contenga este mensaje son exclusivas de su autor y no representan la opinión del Servicio Nacional de Aprendizaje o de sus autoridades. El receptor deberá verificar posibles virus informáticos que tenga el correo o cualquier anexo, razón por la cual el SENA no es responsable de los daños causados por cualquier virus transmitido en este correo electrónico.

Los contenidos, textos, imágenes, archivos enviados en este mensaje son responsabilidad exclusiva del remitente y no reflejan ni comprometen de ninguna manera a la institución. No se autoriza el uso de esta herramienta para el intercambio de correos masivos, cadenas o spam, ni de mensajes ofensivos, de carácter político, sexual o religioso, con fines de lucro, con propósitos delictivos o cualquier otro mensaje que se considere indebido o que vaya en contra de la Ley.

--
You received this message because you are subscribed to the Google Groups "Android CameraX Discussion Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camerax-develop...@android.com.
To view this discussion on the web visit https://groups.google.com/a/android.com/d/msgid/camerax-developers/2f0edfaa-f37a-4d67-b3e6-51f5c1adf447n%40android.com.
Reply all
Reply to author
Forward
0 new messages