Todas las Noticias en Películas, Avances de Películas y Reseñas.

¿MongoDB puede almacenar imágenes? Todo lo que necesitas saber

¿Está pensando en almacenar imágenes en MongoDB y se pregunta si MongoDB puede almacenar imágenes? ¡No te preocupes! Estás en el lugar correcto y con las personas adecuadas. Te haremos entender y también te haremos saber los trucos y la lógica que necesitarás. Entonces, sin hablar más, entremos directamente en el tema, ¿MongoDB puede almacenar imágenes?

Desinstalar MongoDB en Ubuntu: unos sencillos pasos

La forma estándar: ¿Puede MongoDB almacenar imágenes?

La forma estándar de almacenar imágenes en MongoDB es muy simple. Todo lo que necesita hacer es convertir imágenes binarias al formato Base64 y luego almacenarlas en MongoDB. De forma estándar, la conversión Base64 aumentará el tamaño de las imágenes de 3 a 4 veces. Pero si desea almacenar imágenes múltiples/más grandes en un documento MongoDB, usar este método puede causar muchos problemas diferentes. Porque el documento excede el tamaño máximo y el tamaño máximo permitido para un documento MongoDB es de 16 MB.

¿Funcionará MongoDB con Python? Si lo hará, ¿cómo? ¿Estás pensando en lo mismo, entonces lee este artículo para averiguarlo? ~~> ~~>

Un recorrido por Blosc

Blosc es un compresor de muy alto rendimiento optimizado para datos binarios. Funciona muy bien para comprimir matrices numéricas.

Este método de bloqueo se utiliza para reducir la actividad en la memoria tanto como sea posible. La técnica de bloqueo funciona sumergiendo conjuntos de datos en bloques que son pequeños para caber en el caché L1 de los procesadores modernos y realizando compresión y descompresión allí. También hace uso de las capacidades de Instrucción Única, Datos Múltiples (SIMD) y subprocesos múltiples presentes en los procesadores de múltiples núcleos para acelerar el proceso de compresión/descompresión.

Recomendado:  La poderosa explosión de un gasoducto en Lituania puede haber sido provocada por un mal funcionamiento tecnológico, dice un funcionario

python-blosc es un tipo de paquete que envuelve blosc. Solo Python 3.6 o superior es compatible con python-blosc.

Sin embargo, blosc se puede usar en datos binarios. Pero aquí en este blog, vamos a ver el uso de blosc para comprimir matrices NumPy, ya que esto completa dos propósitos:

  • Almacenar matrices numpy en MongoDB.
  • Almacenamiento de imágenes (en formato de matriz numpy) en MongoDB.

¡Aprende sobre agrupar en MongoDB! ~~> ~~>

Instalando Blosc ~~>

Para instalar el paquete python-blosc fácilmente usando Conda, use el código que se proporciona a continuación.

$ conda install -c conda-forge python-blosc

Si desea instalar python-blosc a través de pip, utilice el siguiente comando:

$ pip install blosc

Importante: La biblioteca python-blosc depende directamente de los paquetes cmake y scikit-build. Por lo tanto, es muy importante que instale estos paquetes primero. Para hacer eso, use el comando dado a continuación.

$ pip install cmake
$ pip install scikit-build

Comprimir Numpy Array usando Blosc ~~>

Lo primero que debe hacer es convertir las imágenes en una matriz NumPy. Después de eso, es posible que deba usar la función pack_array en blosc para comprimir la matriz NumPy. Los pasos son los siguientes:

import numpy as np
from numpy import asarray
from PIL import Image
import blosc
  • Ahora, abre la imagen usando el módulo Pillow.
img = Image.open(path/to/image)
  • Después de eso, convierta la imagen en una matriz NumPy usando la función asarray.
image_array = asarray(img)
  • Finalmente, comprima la matriz NumPy utilizando la función pack_array del módulo blosc.
compressed_bytes = blosc.pack_array(image_array)

Una vez que ejecute esta función, la matriz NumPy se convertirá en bytes comprimidos. Ahora puede almacenar los nuevos bytes comprimidos con facilidad en el documento MongoDB. Además, la compresión mantiene los datos de la imagen intactos. El tamaño real de la imagen también se minimiza en gran medida sin que los datos de la imagen se distorsionen.

Recomendado:  El líder en tecnología de ciencias biológicas, ArisGlobal, publica el informe de la industria 2023 y muestra un interés constante y creciente en la automatización inteligente

¿Quiere saber cuándo fragmentar en MongoDB? ¡¡Aquí tienes la guía que necesitas!! ~~>

Descomprimiendo Numpy Array usando Blosc ~~>

Al recuperar los bytes comprimidos del documento MongoDB, debe recuperar la imagen de los bytes comprimidos.

  • Para realizar la descompresión, debe utilizar la función unpack_array en el módulo blosc para convertir los bytes comprimidos en una matriz numpy.
decompressed_array = 
blosc.unpack_array(compressed_bytes)
  • Ahora, desde la matriz NumPy que obtuvimos en el paso anterior, puede recuperar el objeto de imagen usando la función de matriz.
im = Image.fromarray(decompressed_array)
  • Ahora puede almacenar el objeto como un archivo de imagen de la extensión deseada usando la función de guardar.
im.save("filename.png", quality = 95)

Cuando ejecuta estas funciones, puede recuperar fácilmente los bytes comprimidos. Puede volver a cambiar la matriz descomprimida a NumPy y restaurar la imagen. La calidad y el tamaño de la imagen serán los mismos que la imagen antes de la compresión.

Además, la descompresión y la compresión pueden ocurrir muy rápidamente. Los métodos pack_array y unpack_array utilizan pickle y unpickle respectivamente, en segundo plano.

TERMINANDO !! ~~> ~~>

En esta publicación, hemos visto cómo podemos utilizar el módulo blosc para admitir una variedad de técnicas de compresión y descompresión. Por lo tanto, también hemos llegado a saber cómo podemos almacenar imágenes en MongoDB. Espero que encuentres esta información que valga la pena. Entonces, simplemente disfruta de esta publicación y recupera el aprendizaje tanto como puedas. En esa nota, hasta la próxima, ¡nos vemos! Adiós !! ~~> ~~>

:: ~~> ~~> :: ** :::::: ** :: )) ** :: ** (( ~~> ~~>