Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Razzari en 27 Febrero 2017, 23:09 pm



Título: como reducir el tamaño de mi imagen en base64
Publicado por: Razzari en 27 Febrero 2017, 23:09 pm
Hola a todo el mundo !

les hago una consulta me gustaria guardar imagenes en forma de base 64 en una base de datos el problema es que son cadenas super largas, ejemplo una imagen tiene 277102 caracteres !!!!
la idea es ponerla mis etiquetas img src

Código:
<img src="data:image/png;base64,"cadena base 64"

Alguien sabe alguna otra forma encodear una imagen que no sea tan largo, saldudos y desde ya gracias !


Título: Re: como reducir el tamaño de mi imagen en base64
Publicado por: Serapis en 28 Febrero 2017, 00:53 am
Reducir de 8 bits a 5 bits, tiene como contrapartida, el aumento de tamaño. Si o si...
Si antes tenías 6bytes (de 8bits), ahora tienes 8bytes de 6bits, parcheados a 8, luego evidentemente aumenta en 2 bits cada byte.

Podría comprimirse, aunque la mayor parte de las veces, no conseguirás una reducción significativa, tal que de nuevo convertido a base64, sea merecedor del tiempo empleado en la recodificación y su obligada posterior inversa, cuando deba ser exhibida.

Si en vez de png, el formato es jpg, podrás comprimirlas algo más antes de codificarlas a base 64, pero seguramente el resultado en cuanto calidad (jpg), pudiera no convencerte, o bien si usas transparencias, sería inaceptable la pérdida...

Así que no... no hay forma de que ocupen menos. Intenta lo primero que te decía, comprimir el texto resultante tras convertirlo a base64, y luego mira si la posterior conversión a base64, disminuye significativamente.