Tengo una imagen con una resolución de 18984x28591px pero no puedo abrirla con Paint o con Pixlr Editor para reducir su tamaño.
¿Cómo puedo convertir o abrir esta imagen grande en mi computadora portátil?
Tengo una imagen con una resolución de 18984x28591px pero no puedo abrirla con Paint o con Pixlr Editor para reducir su tamaño.
¿Cómo puedo convertir o abrir esta imagen grande en mi computadora portátil?
Respuestas:
Usé ImageMagick en Ubuntu para cambiar el tamaño de esas imágenes grandes.
convert -resize 10% source.jpg dest.jpg
Tomó un tiempo, pero funcionó con 1 GByte de RAM, la herramienta creó un archivo de intercambio de 4.7 Gbyte para sí mismo.
Más información está en AskUbuntu .
convert -resize 1898x2859 ...
Teóricamente, la mayoría de los formatos de imagen podrían reducirse progresivamente, sin cargar toda la imagen en la memoria, sin embargo, no conozco ninguna herramienta que realmente implemente dicha función, excepto JPEG: es especial porque no solo puede reducir la escala sin cargar la resolución completa, pero también a menor escala sin decodificar la resolución completa, gracias al uso creativo de DCT (JPEG está codificado en el dominio de frecuencia, lo que significa que no tiene que decodificarse exactamente a la misma resolución que la imagen original).
La herramienta de decodificación JPEG predeterminada (línea de comando, paquete libjpeg-progs en Linux, busque djpeg.exe para Windows) reducirá el tamaño de JPEG enorme antes de que una aplicación "normal" pueda terminar de cargarlo:
djpeg -scale 1/8 huge_image_that_will_not_fit_in_your_ram.jpg >downscaled.ppm
También he visto la opción de reducción de escala mientras se carga en alguna aplicación GUI, pero no puedo recordarla en este momento.
Comparando el uso de memoria y el tiempo de procesamiento de ImageMagick vs djpeg reduciendo la escala de una imagen grande (canalizando a cjpeg , por lo que la imagen resultante también es jpg, para una comparación justa con convertir )
$ display -verbose input.jpg
input.jpg JPEG 13114x11722 13114x11722+0+0 8-bit sRGB 30.75MB 6.690u 0:06.699
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "convert input.jpg -scale '12.5%' output.jpg"
time=0:10.72 mem=1225844K
$ /usr/bin/time -f "time=%E mem=%MK" bash -c "djpeg -scale 1/8 input.jpg | cjpeg > output2.jpg"
time=0:00.88 mem=1412K
1,2 GB frente a 1,4 MB y más de 10 veces más lento, y esto fue en una imagen relativamente pequeña de 13k x 11k que podía caber completamente en RAM para que no ocurriera intercambio.
Por otro lado, el uso de djpeg para la reducción de escala también tiene sus propias limitaciones: la elección del factor de escala es limitada y el método de remuestreo no se puede cambiar.
También puede intentar usar Picture Resizer en Windows (me encanta esta herramienta)
Simplemente arrastre y suelte la imagen en este simple EXE. Es especialmente útil si tiene muchas imágenes para convertir, ya que puede hacer muchas a la vez.
Toda la configuración se realiza a través de la denominación del EXE, que es IMO brillante
Sin embargo, nunca lo he intentado con un archivo enorme.