Bajar peso de fotos
Comprimir la imagen
Nosotros haremos los cálculos por ti, y la tasa de compresión (en porcentaje) se mostrará en la página de resultados, después de la compresión, para que la analices. Aunque no podemos establecer cuánto se puede reducir con nuestro reductor de tamaño JPG, hemos estado dando en el clavo durante los últimos cinco años, para más de 20 millones de usuarios mensuales. Compruébalo por ti mismo.
Con nuestras herramientas, tampoco tienes que tratar cada archivo individualmente. Puedes utilizar nuestro compresor de imágenes para tratar archivos individuales o por lotes. Sólo tienes que añadir los archivos al compresor de PDF en su formato de imagen original. Una vez convertidos a PDF y comprimidos, puede volver a convertirlos en JPG en el siguiente paso.
Si el documento que has utilizado es un documento escaneado en formato JPG y quieres seguir editándolo, puedes convertirlo a PDF y luego a Word. Se ha habilitado el reconocimiento óptico de caracteres para garantizar la conversión de los archivos escaneados a un formato editable para usted, para facilitar la edición.
El límite de tamaño de los archivos es de 5 GB por archivo, y puede utilizar libremente nuestra plataforma en línea hasta dos veces por hora. Creemos que no se experimenta realmente un producto antes de probarlo, así que ¿por qué no se dirige a nuestro reductor de tamaño JPG o a una de nuestras otras 20 herramientas para comprobarlo por sí mismo? 🙂
Reducir el tamaño de la imagen
Yo uso esta función para reducir el tamaño de la imagen antes de subirla, reduce el tamaño de la imagen a casi 200 KB y mantiene la calidad relativamente buena, u puede modificar para cumplir con su propósito cambiando el REQUIRED_SIZE y inSampleSize:
La respuesta de @MBH tiene una extraña e innecesaria forma de obtener un resultado que puede hacer que se salte el bucle while si el archivo tiene un número de píxeles superior a 6X REQUIRED_SIZE = 75;. o.inSampleSize = 6; es la causa de esto, y sólo consigue enrevesar cuál es el número de píxeles axiales permitido (6*75 = 450). A continuación hay una versión reformada de la respuesta de MBH que también incluye una opción para no sólo ajustar por píxeles, sino por tamaño de almacenamiento:
Optimizador de imágenes
Estoy utilizando PIL para redimensionar las imágenes, convirtiendo las imágenes más grandes en más pequeñas. ¿Hay alguna forma estándar de reducir el tamaño del archivo de la imagen sin perder la calidad demasiado, digamos que el tamaño original de la imagen es 100KB, quiero bajarlo a como 5 o 10 KB especialmente para los formatos png y jpeg.
Vea la función de miniaturas del módulo de imágenes de PIL. Puedes usarla para guardar versiones más pequeñas de los archivos como varios tipos de archivos y si quieres preservar toda la calidad que puedas, considera usar el filtro ANTIALIAS cuando lo hagas.
Aparte de eso, no estoy seguro de si hay una manera de especificar un tamaño máximo deseado. Podrías, por supuesto, escribir una función que intente guardar múltiples versiones del archivo con diferentes calidades hasta que se cumpla un determinado tamaño, descartando el resto y dándote la imagen que querías.
Cómo se reduce el tamaño en mb de una foto en el iphone
No me han satisfecho las soluciones aquí, que generan una imagen basada en un tamaño de KB dado, ya que la mayoría de ellas utilizan .jpegData(compressionQuality: x). Este método no funcionará con imágenes grandes, ya que incluso con la calidad de compresión ajustada a 0,0, la imagen grande seguirá siendo grande, por ejemplo, una de 10 MB producida por el modo retrato de un iPhone más reciente seguirá siendo superior a 1 MB con compressionQuality ajustada a 0,0.
El uso de func jpegData(compressionQuality: CGFloat) -> Data? funciona bien si no necesitas comprimir a un tamaño específico. Sin embargo, para ciertos casos, me resulta útil poder comprimir por debajo de un determinado tamaño de archivo. En ese caso, jpegData no es fiable, y la compresión iterativa de una imagen de esta manera resulta en un estancamiento en el tamaño del archivo (y puede ser realmente caro). En su lugar, prefiero reducir el tamaño de la propia UIImage como en la respuesta de Leo, luego convertir a jpegData y comprobar iterativamente si el tamaño reducido está por debajo del valor que elegí (dentro de un margen que yo establezco). Ajusto el multiplicador del paso de compresión en función de la relación entre el tamaño actual del archivo y el tamaño deseado para acelerar las primeras iteraciones, que son las más costosas (ya que el tamaño del archivo es el mayor en ese momento).