Tipos de arquivos mais comuns para usar na exportação do GIMP

Ao gravar uma imagem, é necessário selecionar o formato do arquivo que vai armazenar seu conteúdo.
A escolha do formato deve se guiar pelas requisições da imagem, pelo seu tipo e pelos objetivos que você deseja alcançar.

Neste post, vou falar dos formatos mais comuns — e não todos os suportados pelo GIMP.

O XCF como padrão nativo do GIMP

Painel de exportação de arquivos do GIMP

O XCF foi criado para comportar imagens com diversas camadas, no GIMP.
Ele é recomendado também para guardar as imagens nas quais você ainda está trabalhando, ou seja, que ainda não tiveram sua edição finalizada.
Tem suporte a 16.78 milhões de cores (24 bits de profundidade), a animações e HDR (High Dynamic Range).

XCF é abreviatura para eXperimental Computing Facility.
Como padrão, o GIMP grava as informações comprimidas sob um algoritmo RLE, mas pode usar também outros mais sofisticados, como o bzip2.
O XCF é suportado por dezenas de outros programas e usado por sites como Wikimedia Commons.

Usa um método de compressão lossless, tal como o padrão de áudio FLAC.
Em outras palavras, comprime as informações do arquivo sem causar perda de dados.
De acordo com Klaus Gölker, autor de GIMP 2.8 For Photographers, o formato pode resultar em arquivos 30% menores que arquivos PSD.

Infelizmente, é muito difícil poder usar este padrão para postar imagens nas redes sociais, onde os mais aceitos são o JPG, PNG e GIF (de que vamos falar mais pra frente).
O XCF é a primeira opção de gravação quando a imagem em questão não será compartilhada, por armazenar uma maior quantidade de informações e preservar toda as suas características originais.
Se você tem a intenção de usar o GIMP em conjunto com outros programas proprietários (como o Photoshop), prefira usar o PSD como formato de arquivo.

Para gravar imagens em XCF, basta pressionar Ctrl + S (^S) ou, para salvar com o outro nome, Ctrl + Shift + S.
Outros formatos de arquivos, devem ser exportados. Para isto use as teclas Ctrl + Shift + E.
Estas opções estão disponíveis no menu Arquivo, se preferir usar o mouse.

Arquivos PSD no GIMP

Este é o padrão nativo do Photoshop (PhotoShop Document).
Não há problema algum em usar este formato como padrão no GIMP. Se você costuma fazer uso dos 2 editores, talvez seja mais cômodo usar apenas este, para gravar arquivos de trabalho.
O lado negativo é que o PSD não suporta compressão, o que vai resultar em arquivos bem maiores.

Formatos de arquivos para Internet

Quando houver a pretensão de enviar arquivos pela Internet, postá-los nas redes sociais ou no seu blog, é hora de pensar em padrões que ofereçam maior taxas de compressão — ainda que tenham impacto na qualidade final das imagens.
Segue os mais aceitos:

JPG ou JPEG

captura de tela do painel de exportação de arquivos para JPG no GIMP

Com suporte a cores em profundidade de até 24-bit, com taxa de compressão variável e ajustável pelo usuário, o JPG é o padrão da Internet, hoje.
A compressão pode impor perdas consideráveis à qualidade final da imagem mas, enfim, ela pode ser ajustada pelo usuário, no ato da gravação.
Além da Internet, é o padrão mais aceito em dispositivos de reprodução de mídia digital, como TVs, porta-retratos digitais etc.
Para seu site ou blog, vale usar o recurso progressive, no ato da gravação das suas imagens. Este recurso permite à imagem ser exibida imediatamente em baixa qualidade, para satisfazer conexões mais lentas e gradualmente (progressivamente) as informações serão carregadas, terminando por exibir a imagem com qualidade total.
Tome cuidado para não salvar imagens JPEG uma sobre a outra sob pena de ir perdendo sua qualidade subsequentemente.
Enquanto estiver trabalhando, use o XCF. Quanto terminar, grave em JPG.

O formato PNG

O PNG (Portable Network Graphics) é um padrão relativamente mais novo que o JPG e é voltado para uso na Internet. Também tem suporte a entrelaçamento, o que permite a sua exibição gradual para quem chegar ao seu site com uma conexão mais lenta.
Permite obter imagens comprimidas lossless, com possibilidade de ajustes pelo usuário.
Como tem suporte a diversas camadas, pode ser usado também para criar animações.

O formato GIF

painel exportar para GIF no GIMP.

GIF é um padrão de imagens antigo e, atualmente muito usado para exibir animações na web.
Nem todos os sites de redes sociais aceitam este tipo de imagem.
Aceita uma profundidade de cores até 8-bit, com 256 cores (e não milhões, como os padrões já citados).
Tem suporte a entrelaçamento e compressão lossless.

O formato TIFF

exportar tiff no GIMP

TIFF é um dos formatos mais antigos em uso atualmente, lançado em 1986 pela Aldus Corp. (empresa adquirida pela Adobe).
Há 32 anos a Internet estava em seus primórdios e a largura de banda disponível para se transferir imagens era uma fração do que se tem hoje.
À época, as mídias de gravação mais avançadas eram disquetes de 3,5″, com capacidade de até 1.44 MB. Este é o contexto da criação e uso do TIFF.
O formato não parou no tempo e tem suporte a cores com profundidade 24-bit, transparência alpha e compressão lossless LZW.

As imagens RAW, no GIMP

Se você usa o GIMP para editar suas fotografias, com câmeras semi profissionais ou profissionais, provavelmente usa formatos RAW, como opção de gravação das suas imagens dentro da câmera.
O GIMP reconhece vários formatos RAW e possui um plug-in UFRAW que permite editar este tipo de imagem e trabalhar com o formato DNG (da Adobe).
Por questão de compatibilidade/portabilidade, usar o DNG para gravar imagens RAW, pode ser uma boa ideia.
Se tiver curiosidade, leia sobre o RawTherapee, um editor específico para imagens RAW e que pode rodar integrado ao GIMP, como um plug-in.

Verifique a integridade de imagens JPG com o jpeginfo

O jpeginfo pode ajudar a verificar automaticamente a integridade de uma quantidade enorme de imagens, em seu sistema Linux.
Trata-se de um pequeno utilitário de linha de comando (CLI), flexível, rápido e eficiente.
linux jpeginfo
Posso usar o jpeginfo para checar um único arquivo de imagem ou centenas deles.
Como, para um trabalho desta natureza, você quer resultados rápidos, as ferramentas CLI são a melhor opção — por que conseguem mostrar os resultados que você deseja, com o menor consumo possível de recursos do sistema.

Como instalar o jpeginfo

No Debian e no Ubuntu, ele pode ser instalado, com o apt:

sudo apt install jpeginfo
 _

Trata-se de um programa muito pequeno, que não vai pesar no sistema — caso você se preocupe com estes detalhes. Além disto, sempre é possível removê-lo, depois de realizar o seu trabalho.
Se estiver curioso, você pode conferir o tamanho dele com a opção ‘show’ do apt:

apt show jpeginfo | grep -i size

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

Installed-Size: 25,6 kB
Download-Size: 13,2 kB
 _

Ele pode ser instalado em questão de segundos, como você pode ver.

O tamanho do jpeginfo, após a instalação, é aproximadamente 25 Kb.

Como verificar a integridade das minhas fotos?

Como eu disse, dá pra verificar apenas uma imagem, assim:

jpeginfo --check System76-System76_Brandmark_Blue-by_Kate_Hazen_of_System76.jpg 
 _

O texto “[OK]”, ao final das informações básicas do arquivo, indica que está tudo bem com ele:

System76-System76_Brandmark_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  985882  [OK]
 _
jpeginfo --check foto-danificada.jpg
 _

… ou você pode obter uma indicação de que há “[ERROR]”:

foto-danificada.jpg  Not a JPEG file: starts with 0x5c 0x6e  [ERROR]
 _

Você pode pedir para verificar todas as imagens do diretório corrente, com o uso de curingas:

jpeginfo --check *.jpg
 _
foto-danificada.jpg  Not a JPEG file: starts with 0x5c 0x6e  [ERROR]
System76-Old_Man_Smoked_His_Pipe-by_Ian_Hex_of_LightSweep.jpg 2560 x 1440 24bit JFIF  P 3768044  [OK]
System76-System76_Brandmark_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  985882  [OK]
System76-System76_Brandmark_Gray-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  824133  [OK]
System76-System76_Brandmark_Yellow-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  952200  [OK]
System76-System76_Logo_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  974983  [OK]
System76-System76_Logo_Gray-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  731859  [OK]
System76-System76_Logo_Yellow-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  943715  [OK]
 _

Observe que as informações, na listagem normal, vêm em colunas:

  1. nome do arquivo
  2. resolução da imagem
  3. profundidade das cores
  4. padrão do arquivo de imagem
  5. padrão da decodificação (progressiva, interpolada etc.)
  6. Tamanho, em bytes

Na última coluna, o resultado do teste.

A sigla JFIF, que aparece na lista acima, significa JPEG File Interchange Format. Trata-se do formato padrão do arquivo da imagem.
Este formato é compatível com o padrão JPEG Interchange Format (JIF) e resolve algumas de suas limitações de codificação.
Tal como todos os arquivos JIF, os dados contidos em imagens JFIF comprimidos com o uso de técnicas no padrão JPEG, uma vez que as imagens JFIF são comumente chamadas “JPEG/JFIF”.

Use a opção ‘–lsstyle’, para ver o resultado organizado de outra forma:

jpeginfo --check --lsstyle *.jpg
 Not a JPEG file: starts with 0x5c 0x6e  foto-danificada.jpg [ERROR]
2560 x 1440 24bit JFIF  P 3768044 System76-Old_Man_Smoked_His_Pipe-by_Ian_Hex_of_LightSweep.jpg  [OK]
2560 x 1440 24bit JFIF  P  985882 System76-System76_Brandmark_Blue-by_Kate_Hazen_of_System76.jpg  [OK]
2560 x 1440 24bit JFIF  P  824133 System76-System76_Brandmark_Gray-by_Kate_Hazen_of_System76.jpg  [OK]
2560 x 1440 24bit JFIF  P  952200 System76-System76_Brandmark_Yellow-by_Kate_Hazen_of_System76.jpg  [OK]
2560 x 1440 24bit JFIF  P  974983 System76-System76_Logo_Blue-by_Kate_Hazen_of_System76.jpg  [OK]
2560 x 1440 24bit JFIF  P  731859 System76-System76_Logo_Gray-by_Kate_Hazen_of_System76.jpg  [OK]
2560 x 1440 24bit JFIF  P  943715 System76-System76_Logo_Yellow-by_Kate_Hazen_of_System76.jpg  [OK]
_

Use o comando grep, para ver apenas os resultados que retornaram erro:

jpeginfo --check --lsstyle *.jpg | grep -i error
_
 Not a JPEG file: starts with 0x5c 0x6e  foto-danificada.jpg [ERROR]
_

Use a opção ‘–delete’, para remover automaticamente todos os arquivos que forem encontrados com erros:

jpeginfo --delete *.jpg
_

Use a opção ‘–info’, para obter mais detalhes nas informações sobre cada arquivo:

jpeginfo --info *.jpg
_
System76-Old_Man_Smoked_His_Pipe-by_Ian_Hex_of_LightSweep.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,300dpi 3768044 
System76-System76_Brandmark_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,150dpi  985882 
System76-System76_Brandmark_Gray-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,150dpi  824133 
System76-System76_Brandmark_Yellow-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,150dpi  952200 
System76-System76_Logo_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,150dpi  974983 
System76-System76_Logo_Gray-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,150dpi  731859 
System76-System76_Logo_Yellow-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  Progressive Huffman,150dpi  943715 
_

Calcule a soma MD5, ou MD5 checksum, com a opção ‘–md5’:

jpeginfo --md5 *.jpg
_
System76-Old_Man_Smoked_His_Pipe-by_Ian_Hex_of_LightSweep.jpg 2560 x 1440 24bit JFIF  P 3768044 f45c6abe65faff92c753ca24ec5f8152 
System76-System76_Brandmark_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  985882 3fc69c0484860c02b21cb6582067c28b 
System76-System76_Brandmark_Gray-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  824133 3406d52789e7a79cf9efc76135416cf4 
System76-System76_Brandmark_Yellow-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  952200 bb1cd2cd03730e8e56d5876c6638de47 
System76-System76_Logo_Blue-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  974983 dc2e914b26c91dceb745baab1dd677aa 
System76-System76_Logo_Gray-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  731859 9efd7ded3aceb671a708bac28a7aeb6a 
System76-System76_Logo_Yellow-by_Kate_Hazen_of_System76.jpg 2560 x 1440 24bit JFIF  P  943715 30ee050e0c5d14b7c9c6f44b7df2fff4
_

Fazer o cálculo da soma MD5, é útil para quem vai fazer a transmissão de uma grande quantidade de arquivos de imagem e deseja obter uma checagem, no final, de que a transferência ocorrem sem incidentes.
Como você já deve ter percebido, pode combinar várias opções na mesma linha.
Para saber mais sobre o jpeginfo, use a opção ‘–help’ ou consulte o manual do sistema: man jpeginfo.

Como obter informações dos arquivos de imagem com o identify, no Linux

Esta dica é útil para webmasters, que precisam obter informações sobre imagens armazenadas em servidores sFTP, FTP, etc.
Todos sabemos que uma página web vai carregar mais rápido no navegador do cliente, se as imagens estiverem devidamente otimizadas ou, pelo menos usarem resoluções mais adequadas ao tráfego eficiente de dados.
A maioria dos servidores web, atualmente, usam distribuições Linux ou FreeBSD. Portanto, a dica que segue vale para todos.
O identify é um aplicativo utilitário CLI, que faz parte do pacote de ferramentas de manipulação de imagens ImageMagick, que costuma estar instalado na maioria das distribuições. Se não estiver, instale você mesmo ou peça para o administrador.
O utilitário tem (entre outras) a função de obter e exibir informações sobre o formato e as características de um ou mais arquivos de imagem.
Ele também pode ajudar a determinar se uma imagem se encontra incompleta ou corrompida.
O comportamento básico consiste em retornar informações sobre resolução e mapa de cores.
Se você fizer uso de algumas de suas opções, contudo, vai poder obter mais dados sobre as imagens no diretório.
Veja um exemplo do uso básico do identify:

identify images/wallpapers/system76/System76-System76_Logo_DarkBlue-remix.jpg 

Como você pode observar, no resultado abaixo, o comando exibe o nome do arquivo seguido de informações relacionadas ao seu formato, resolução, mapa de cores, tamanho (em MB) e, por fim, o tempo que a imagem demora para carregar.

images/wallpapers/system76/System76-System76_Logo_DarkBlue-remix.jpg 
JPEG 2560x1440 2560x1440+0+0 8-bit sRGB 1.455MB 0.090u 0:00.100

Você pode usar coringas para obter informações sobre várias imagens, dentro de um diretório:

identify *.png
System76-Fractal_Mountains-by_Kate_Hazen_of_System76.png PNG 2560x1440 2560x1440+0+0 8-bit sRGB 216KB 0.000u 0:00.000
System76-Fractal_Salad-by_Kate_Hazen_of_System76.png[1] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 1.233MB 0.000u 0:00.000
System76-Geometric-adapted_by_Kate_Hazen_of_System76.png[2] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 543KB 0.000u 0:00.000
System76-Honeycomb-by_Kate_Hazen_of_System76.png[3] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 1.274MB 0.000u 0:00.000
System76-Robot-by_Kate_Hazen_of_System76.png[4] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 117KB 0.000u 0:00.000
System76-Unleash_Your_Robot_Blue-by_Kate_Hazen_of_System76.png[5] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 366KB 0.000u 0:00.000
System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png[6] PNG 2560x1440 2560x1440+0+0 8-bit sRGB 317KB 0.000u 0:00.000

Se acrescentar a opção ‘-verbose’, você irá obter uma quantidade (muito) maior de informações sobre a imagem:

identify -verbose System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png
Image: System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png
  Format: PNG (Portable Network Graphics)
  Mime type: image/png
  Class: DirectClass
  Geometry: 2560x1440+0+0
  Units: Undefined
  Type: Palette
  Endianess: Undefined
  Colorspace: sRGB
  Depth: 8-bit
  Channel depth:
    red: 8-bit
    green: 8-bit
    blue: 8-bit
  Channel statistics:
    Pixels: 3686400
    Red:
      min: 49 (0.192157)
      max: 251 (0.984314)
      mean: 67.3018 (0.263929)
      standard deviation: 52.2158 (0.204768)
      kurtosis: 8.12896
      skewness: 3.16752
    Green:
      min: 49 (0.192157)
      max: 211 (0.827451)
      mean: 64.1777 (0.251677)
      standard deviation: 45.8988 (0.179995)
      kurtosis: 5.73893
      skewness: 2.76302
    Blue:
      min: 8 (0.0313725)
      max: 240 (0.941176)
      mean: 53.8382 (0.21113)
      standard deviation: 27.4086 (0.107485)
      kurtosis: 32.4493
      skewness: 4.88138
  Image statistics:
    Overall:
      min: 8 (0.0313725)
      max: 251 (0.984314)
      mean: 61.7726 (0.242245)
      standard deviation: 43.1448 (0.169195)
      kurtosis: 11.5967
      skewness: 3.57292
  Colors: 158
  Histogram:
      1077: ( 49,178,217) #31B2D9 srgb(49,178,217)
      1470: ( 49,187,228) #31BBE4 srgb(49,187,228)

...

      4954: (239,201, 11) #EFC90B srgb(239,201,11)
    257974: (251,211,  8) #FBD308 srgb(251,211,8)
  Rendering intent: Perceptual
  Gamma: 0.454545
  Chromaticity:
    red primary: (0.64,0.33)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.06)
    white point: (0.3127,0.329)
  Background color: white
  Border color: srgb(223,223,223)
  Matte color: grey74
  Transparent color: black
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 2560x1440+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: Zip
  Orientation: Undefined
  Properties:
    date:create: 2016-09-21T11:51:50-03:00
    date:modify: 2016-09-02T10:53:12-03:00
    png:IHDR.bit-depth-orig: 8
    png:IHDR.bit_depth: 8
    png:IHDR.color-type-orig: 2
    png:IHDR.color_type: 2 (Truecolor)
    png:IHDR.interlace_method: 0 (Not interlaced)
    png:IHDR.width,height: 2560, 1440
    png:sRGB: intent=0 (Perceptual Intent)
    png:text: 1 tEXt/zTXt/iTXt chunks were found
    signature: b7734eceb937dcaa86ca13ecb086850622c67fc8a863fd7c10f095c98498054e
    Software: Adobe ImageReady
  Artifacts:
    filename: System76-Unleash_Your_Robot-by_Kate_Hazen_of_System76.png
    verbose: true
  Tainted: False
  Filesize: 317KB
  Number pixels: 3.686M
  Pixels per second: 61.44MB
  User time: 0.060u
  Elapsed time: 0:01.060
  Version: ImageMagick 6.8.9-9 Q16 x86_64 2016-09-25 http://www.imagemagick.org

Neste caso, recomendo combinar o comando less ou o comando grep, para pausar ou filtrar a listagem.
Os usos do comando permitem, até mesmo, realizar tarefas mais complexas de manipulação de imagens, direto da linha de comando — mas isto, vamos explicar em outro artigo.

Como otimizar imagens com o jpegtran

O jpegtran é um utilitário de linha de comando para transformação de arquivos de imagem JPEG, com o mínimo de perda de qualidade.
Nas distribuições Linux Debian 8.2 “Jessie” e no Ubuntu 16.04 LTS “Xenial Xerus” o pacote libjpeg-progs já se encontra instalado.
Se este não for o seu caso, é possível baixar e instalar o programa dos repositórios.
No Ubuntu ou em qualquer outra distro baseada no Debian, use o apt ou o apt-get para fazer a instalação:

sudo apt install libjpeg-progs

Como é possível ver (pelo nome do pacote), trata-se de um conjunto de programas:

  • cjpeg/djpeg — converte arquivos de imagens de outros formatos (especialmente PNM e targa para JPEG e vice-versa
  • rdjpgcom/wrjpgcom — lê/altera a sessão de comentários dentro dos arquivos JPEG
  • jpegtran — transformação sem perda de arquivos JPEG
  • jpegexiforient/exifautotran — manipula a tag de orientação da imagem, dentro do EXIF

No decorrer do texto, vou mostrar como otimizar suas imagens, fazendo uso do jpegtran.
Em seguida, vou mostrar como reduzir o peso de maneira mais significativa e eficiente com o uso da dupla djpeg e cjpeg.

Otimizar suas imagens, antes de fazer o upload, é fundamental para evitar que causem impacto negativo no tempo de carregamento.
A regra é nunca fazer upload de imagens sem tratamento pro seu site.

Este procedimento é fundamental para quem tem um site ou blog e deseja mantê-lo o mais enxuto e eficiente para carregar para seus leitores.

O que o jpegtran faz com suas imagens

O aplicativo executa várias transformações úteis em seus arquivos JPEG.
Ele pode traduzir a representação codificada de um tipo de JPEG para outro — por exemplo, pode transformar um arquivo comum para JPEG progressivo ou vice-versa.
O jpegtran pode alterar certos dados dos seus arquivos de imagem, como a sua orientação: de retrato para paisagem, por exemplo.
O programa trabalha rearranjando os dados comprimidos (DCT coefficients), sem precisar decodificar completamente a imagem — por isto, ele é capaz de fazer transformações sem perda de qualidade (lossless transformation).
Já, com o uso do djpeg (descompressão), seguido do cjpeg (compressão), para obter a mesma conversão, já vai ocorrer perda da qualidade na imagem.
Você vai encontrar mais informações sobre o uso do aplicativo no manual. Na linha de comando, é possível obter informações sobre como usar:

jpegtran -h

Exemplos de uso do jpegtran

Vamos ver alguns exemplos práticos de uso do aplicativo, que podem ser úteis no seu dia a dia.
Para converter uma imagem não-progressiva para progressiva, use os seguintes parâmetros:

jpegtran -progressive Mercedes-Benz-450SL-1980-by-Thomas-Bersy.jpg > Mercedes-optimized.jpg

No exemplo acima, o primeiro arquivo é o original e o segundo é o novo, criado com as novas alterações.
Use a opção ‘-optimize’, para otimizar seus arquivos:

jpegtran -verbose -optimize Mercedes-Benz-450SL-1980-by-Thomas-Bersy.jpg > Mercedes-optimized.jpg

Como acrescentei a opção ‘-verbose’, o programa mostra informações detalhadas do trabalho em execução:

libjpeg-turbo version 1.3.1 (build 20150308)
Copyright (C) 1991-2012 Thomas G. Lane, Guido Vollbeding
Copyright (C) 1999-2006 MIYASAKA Masaru
Copyright (C) 2009 Pierre Ossman for Cendio AB
Copyright (C) 2009-2014 D. R. Commander
Copyright (C) 2009-2011 Nokia Corporation and/or its subsidiary(-ies)

Emulating The Independent JPEG Group's software, version 6b  27-Mar-1998

Start of Image
Miscellaneous marker 0xe1, length 22752
Define Quantization Table 0  precision 0
Define Quantization Table 1  precision 0
Define Huffman Table 0x00
Define Huffman Table 0x10
Define Huffman Table 0x01
Define Huffman Table 0x11
Start Of Frame 0xc0: width=3264, height=2448, components=3
    Component 1: 2hx1v q=0
    Component 2: 1hx1v q=1
    Component 3: 1hx1v q=1
Start Of Scan: 3 components
    Component 1: dc=0 ac=0
    Component 2: dc=1 ac=1
    Component 3: dc=1 ac=1
  Ss=0, Se=63, Ah=0, Al=0
End Of Image

Para ver se houve alteração no tamanho da imagem:

ls -l

Como você pode ver, abaixo, a redução no tamanho foi mínima:

total 5644
-rw-r--r-- 1 justincase justincase 2925612 Dez  7 11:32 Mercedes-Benz-450SL-1980-by-Thomas-Bersy.jpg
-rw-r--r-- 1 justincase justincase 2849006 Dez  7 16:08 Mercedes-optimized.jpg

Para obter uma cópia em escala de cinza, use a opção ‘-grayscale’:

jpegtran -grayscale Mercedes-Benz-450SL-1980-by-Thomas-Bersy.jpg > Mercedes-optimized.jpg
ls -l

Este tipo de medida costuma trazer resultados mais claros para reduzir o tamanho de um arquivo:

total 4896
-rw-r--r-- 1 justincase justincase 2925612 Dez  7 11:32 Mercedes-Benz-450SL-1980-by-Thomas-Bersy.jpg
-rw-r--r-- 1 justincase justincase 2080959 Dez  7 16:38 Mercedes-optimized.jpg

Como obter redução significativa no tamanho do arquivo JPEG

Para obter uma redução maior da sua imagem, use a dupla djpeg/cjpeg para descomprimir e descomprimir novamente.
Funciona assim:

djpeg imagem_original.jpg > imagem_descomprimida.jpg
cjpeg image_descomprimida.jpg > imagem_final.jpg
_

Neste caso, vai haver perda da qualidade da imagem — mas é razoavelmente pequena. O ganho com a redução do tamanho é maior.
Na listagem, que segue, temos 4 exemplos de uma imagem:

ls -lh Mercedes*
_
-rw-r--r-- 1 justincase justincase 2,8M Dez  7 11:32 Mercedes-Benz-450SL-1980-by-Thomas-Bersy.jpg
-rw-r--r-- 1 justincase justincase 666K Dez  7 16:47 Mercedes-comprimido.jpg
-rw-r--r-- 1 justincase justincase  23M Dez  7 16:46 Mercedes-descomprimido.jpg
-rw-r--r-- 1 justincase justincase 2,8M Dez  7 16:45 Mercedes-optimized.jpg
  • O primeiro arquivo é o original (2,8 Mb);
  • o terceiro foi descomprimido a partir do original (23 Mb);
  • o segundo foi comprimido a partir do terceiro (666 Kb) e
  • o último foi apenas otimizado a partir do original.

Veja a imagem original:

… e a cópia comprimida:

Consegue perceber as diferenças entre as 2 imagens?
Se você ainda estiver insatisfeito com o tamanho do arquivo comprimido, é possível repetir o processo de descomprimir/comprimir e reduzir ainda mais o seu tamanho.

Referências

Crédito da imagem: Thomas Bersey.