Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 29/04/13, 12:42:22
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Perdida calidad Bitmap

Buenas!

Tengo una serie de bitmap que voy reescalando con matrix.postScale, y la cuestión es que pierde bastante calidad, tanto si lo hago pequeño como si lo hago grande, hay alguna manera de que el bitmap siga teniendo la calidad que tenia antes de reescalarlo?

Muchas gracias!
Responder Con Cita


  #2  
Viejo 29/04/13, 12:57:53
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Siempre te va a perder calidad al redimensionar una imagen, sobre todo si luego quieres verla con el mismo tamaño que la imagen original.

Al hacerla más grande haces lo que se llama interpolado positivo, que lo que hace es inventarse puntos en la imagen, aproximados a los puntos que tiene alrededor. Esto SIEMPRE va a hacer que la imagen se vea peor.

Al hacerla más pequeña haces interpolado negativo, lo que hace es quitar puntos de la imagen, su efecto no se nota siempre y cuando la imagen la veas al tamaño al que lo redujiste, si luego tratas de ampliarla y verla al tamaño de la imagen original, obviamente perderás calidad al haber quitado puntos de la imagen.

Ejemplo del segundo caso: Tienes un móvil de 800x480 (HDPI Standard), y tienes una imagen de la misma resolución. A pantalla completa en el móvil la verás perfecta. Ahora coges y la reduces a a la mitad, 400x240. Siempre y cuando en el móvil la veas a esa resolución (ocupando sólo la zona central del móvil, y el resto bordes negros) la seguirás viendo bien, pero más pequeña, en cuanto la amplíes la verás mal.

Ahora bien, si aún reduciéndola y manteniéndola viéndose pequeña la ves mal, entonces si puede ser que puedas mejorar la calidad. ¿Haces algo más a parte del createBitmap con la nueva matrix?
Responder Con Cita
  #3  
Viejo 29/04/13, 13:09:40
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
No creo de nuevo el bitmap, simpelemente creo una matriz y haog un drawBitmap con la nueva matriz asignada (Reescalada al valor que quiero)

Edito 1: ¿Los programas que hacen trato de imagenes, es decir que puedes ampliarlas con los dedos y girarlas, no pierden calidad o es que no se nota, o si no pierden calidad, sabes como lo hacen?
Responder Con Cita
  #4  
Viejo 29/04/13, 13:12:47
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Asegurate de tener el antialiasing activado, que por defecto no lo está.

Al paint que le pases al drawBitmap tienes que hacerle antes un paint.setAntiAlias(true);
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 29/04/13, 13:14:23
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Tengo puesto el paint a null, lo correcto seria crearse un paint y hacerle un paint.setAntiAlias(true);
osea:

Paint p = new Paint();
p.setAntiAlias(true);
y de ahi ya llamar a canvas.draw(...,p)?
Responder Con Cita
  #6  
Viejo 29/04/13, 13:16:12
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Yo tengo una subclase de ImageView que hace eso, y lo que hace es usar el setImageMatrix del ImageView.
Responder Con Cita
  #7  
Viejo 29/04/13, 13:57:16
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

 Cita: Originalmente Escrito por pablogarcia013 Ver Mensaje
Tengo puesto el paint a null, lo correcto seria crearse un paint y hacerle un paint.setAntiAlias(true);
osea:

Paint p = new Paint();
p.setAntiAlias(true);
y de ahi ya llamar a canvas.draw(...,p)?
Sí, pero no lo crees cada vez que llames al draw, guarda el Paint como variable de clase para reutilizarlo siempre.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #8  
Viejo 29/04/13, 15:48:53
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Muchas gracias! voy a probarlo y te comento
Responder Con Cita
  #9  
Viejo 30/04/13, 09:27:26
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Buenas! ya probe lo de setAntiAlias(true) creandome un paint y pasandoselo al dibujar, pero se me ven con menos calidad que si le paso a null...alguno sabe una soluccion? o si lo he hecho mal?

Muchas gracias!
Responder Con Cita
  #10  
Viejo 30/04/13, 10:47:49
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Disculpa, es lo que pasa cuando se dicen las cosas de memoria. Lo correcto es p.setFilterBitmap(true)
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #11  
Viejo 30/04/13, 11:04:03
Array

[xs_avatar]
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Funciona a la perfeccion!
muchisimas gracias otra vez! eres un crack!
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 09:49:17 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /