Problema:
Imagens estão ocupando muito espaço na hospedagem do site. Reduzir a qualidade das imagens .
O tamanho das imagens também podem vir
- do tamanho das própria imagem
- Resolução da imagem.
Proposta:
Usar o Gimp em seu processamento de lote para ajustar a qualidade das imagens (50% no caso das imagens JPEG) o mesmo procedimento para as fotos.
Claro que se as imagens já estiverem com esta qualidade, ou menor, não haverá ganho.
Um pouco de Código:
(define (batch-half-quality-jpeg-file pattern
radius
amount
threshold)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE
filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(file-jpeg-save RUN-NONINTERACTIVE
image drawable filename filename
0.50 0 1 1 "GIMP" 0 1 0 0)
; 0.50 quality (float 0 <= x <= 1)
; 0 smoothing factor (0 <= x <= 1)
; 1 optimization of entropy encoding parameter (0/1)
; 1 enable progressive jpeg image loading (0/1)
; "xxxx" image comment
; 0 subsampling option number
; 1 force creation of a baseline JPEG
; 0 frequency of restart markers
; in rows, 0 = no restart markers
; 0 DCT algoritm to use
(gimp-image-delete image))
(set! filelist (cdr filelist)))))
Este código foi colocado em um arquivo batch-half-quality-jpeg-file.scm na pasta ~/.gimp-2.8/scritps
Ooops. Parece que restos do código antigo ficaram neste código. Recomenda-se cautela.
O script foi executado de um terminal
~$ gimp -i -b '(batch-half-quality-jpeg-file "./fotos/lote01-50/*.JPG" 5.0 0.5 0)' -b '(gimp-quit 0)'
Note que os arquivos originais são sobreescritos sem maiores questionamentos.
O processamento resulta em algumas mensagens de alerta como
(gimp:15907): GLib-GObject-WARNING **: g_object_set_valist: object class 'GeglConfig' has no property named 'cache-size'
...
(gimp:15907): GEGL-gegl-operation.c-WARNING **: Cannot change name of operation class 0x123A330 from "gimp:point-layer-mode" to "gimp:anti-erase-mode"
While parsing XMP metadata:
Erro: não foi encontrado nenhum pacote XMP
....
batch command executed successfully
Porem atinge os nossos objetivos de diminuir o tamanho dos arquivos de image.
Como esta solução foi usada em um Ubuntu 15.10 e GIMP 2.8, algumas adaptações podem ser necessárias para o seu ambiente.
Referencias:
- GNU Image Manipulation Program – Documentação bem completa do Gimp.
- GIMP Batch Mode – um tutorial para começar a entender o processamento em lote usando o Gimp.
- Preparing your Images for the Web – Orientações de preparação de imagens para uso na Web.
- Your First Script-Fu Script –
- Automatic Creation of XCF from JPG – Será que dá para salva de volta como JPEG, mas com novos parametros de qualidade?
- Writing GIMP Scripts and Plug-Ins – o básico sobre escrever scripts e plugins para o Gimp.
- Notes on GIMP Scripting –
- GIMP: Re-uniting Save and Export –
- Krita – Alternativa ao Gimp como ferramenta de desenho.
- Some GIMP Scripts-Fu (and Related ImageMagick Notes) –