Como posso comprimir imagens?

9

Tenho 5.000 imagens que preciso compactar (para exibir no meu site).

Eu sou novo no Ubuntu. Então, o que eu faço?

    
por user2950593 03.06.2016 / 21:19

3 respostas

14

Eu uso Trimage super simples de usar.

adicione apenas imagem e comprima para instalar:

sudo apt-get install trimage

    
por Mohamed Slama 03.06.2016 / 21:28
26

A palavra "compressão" parece ser mal interpretada nesta questão, mas ainda é válida dependendo do contexto que você deseja ver.

O cenário

Vamos encarar que os designers da Web, desenvolvedores da Web e / ou mestres da Web precisam "compactar" nossos arquivos de imagem para torná-los "leves" o suficiente para serem rapidamente enviados para nossa hospedagem se estivermos trabalhando diretamente em uma produção real meio Ambiente. O que não afetará se estivermos trabalhando em um ambiente de produção de teste local.

Muitas das respostas parecem referir-se a outras coisas, causadas principalmente por causa de -probably- eles não enfrentaram tal cenário. É por isso que começo a explicar isso.

Vamos entender o que a resposta precisa resolver:

  1. A imagem DEVE ser leve
  2. A imagem DEVE ser "compactada" para perder o tamanho do arquivo, mas não "rezisado", conforme referenciado por outro usuário que apontou para uma cópia desta pergunta compactação em lote JPG & amp; renomear (encontrar -exec, xargs, piping?)
  3. As imagens devem ser compactadas em lote, de preferência por meio de uma GUI.

Imagem leve

Vamos primeiro entender o que deve ser uma "imagem leve".

Imagens de alta definição, com resoluções acima de 1024px podem ter um tamanho de arquivo grande. Eu forneço um exemplo nesta captura de tela:

Na janela de propriedades do arquivo, podemos ver que este é um arquivo de 9,5 MB, que atrasará muito o upload e atrasará muito para ser exibido na tela quando publicado em um site.

No entanto, o tamanho da imagem e a resolução da grade são realmente úteis para uma impressão de alta definição. Então, esse é um cenário diferente que eu não cobrirei nesta explicação.

Então, como posso usar essa imagem em um site, sem esperar anos para fazer o upload e aguardar alguns anos para mostrá-la no meu site?

O arquivo deve ser compactado.

E quando falamos em "compressão", explicitamente precisamos mudar sua qualidade para torná-lo utilizável para o caso que estamos enfrentando.

Então, vamos soltar o seguinte em um terminal:

convert seminario-tabloide.png test.jpg

Isso converterá o formato PNG de alta definição em um formato JPG "compactado", que por si só é um arquivo menor! Vai de 9,5 MB a 2,4 MB.

Ainda é grande?

Mas, 2,4 MB ainda é um tamanho de arquivo grande. Vamos agora brincar com alguns outros ImageMagick convert para criar tamanhos de arquivo menores:

convert test.jpg -quality 50% test-50p.jpg

Isso é o que precisamos fazer para "comprimir" uma imagem. Isso reduzirá a qualidade da imagem em 50% e fornecerá um tamanho de arquivo de 938,4 KB & lt; === (Nota: KILOBYTES, nem mesmo um Megabyte).

Podemos ir além e criar um tamanho de arquivo menor ajustando a porcentagem no mesmo comando via:

convert test.jpg -quality 30% test-30p.jpg

Tenha em mente que, neste exemplo, estamos reduzindo a qualidade do arquivo, não as dimensões da imagem. O que resultará em um arquivo compactado que não é visualmente afetado quando renderizado na tela, mas você verá os artefatos ao imprimir em um tamanho de papel grande (maior que a letra).

Redimensionamento + compactação = super legal!

Agora. Nós podemos fazer uma coisa diferente. De fato, podemos redimensionar as imagens e aplicar a compactação depois disso, o que resultará em um tamanho de arquivo menor que o original, e fornecerá uma imagem útil para renderização na tela, não tão boa para impressão, mas parece que precisa exibi-lo na tela e não em um banner impresso, certo?

Então, vamos fazer isso:

convert seminario-tabloide.png -resize 1024x test-1024x.jpg

Com esta instrução, pedimos que a imagem seja redimensionada para ter 1024 pixels de largura por qualquer quantidade de pixels necessária para não perder a proporção.

Agora ... adivinhe?

O tamanho do arquivo foi reduzido de 9,5 MB para ... (música de suspense com congas, por favor) 433.7 KILOBYTES

Se quisermos compactar no máximo um arquivo compactado máximo como este, enfrentaremos alguns dados de sobrecarga inseridos no arquivo e isso resultará em um tamanho de arquivo maior. Então eu não vou sugerir que você tente, mas se você está esperando que eu faça o exemplo, ok ... Aqui vamos nós!

convert test-1024x.jpg -quality 50% test-1024x-50p.jpg

E fomos de um 433,7 KB para um 176.2 KB em um único comando. Este exemplo foi bem-sucedido, mas não espere que os exercícios resultem em tamanhos menores de arquivos. Mas você pode se divertir muito ao executar este tipo de exercícios.

Processo em lote

Oh!Mas quase me esqueço de uma das necessidades: aplicar este processo a muitas fotos com facilidade.

Para isso, podemos fazer isso com dois processos.

O terminal

Isso é mais rápido e fácil. Então, vamos dizer ao terminal que precisamos para executar a mesma instrução em todos os arquivos em um diretório, após o qual eu vou explicar outras instruções.

Converta todos para 1024px (você pode usar qualquer quantidade de pixels)

for i in *; do convert $i -resize 1024x $i-1024x.jpg; done;

Aqui estamos pedindo ao comando para executar a mesma instrução para todos os arquivos em um diretório, aplicar a transformação e soltar uma cópia com um nome diferente para facilitar a seleção.

Reduza a qualidade por porcentagem (use qualquer porcentagem que você desejar) para todas as fotos em um diretório:

for i in *-1024x.jpg; do convert $i -quality 50% $i-50p.jpg; done;

Aqui estamos pedindo que as imagens redimensionadas sejam reduzidas em qualidade para diminuir o tamanho do arquivo.

Você pode brincar com esses comandos e ver seus resultados. Depois de algumas horas se divertindo, você será um especialista.

Script Nautilus

Em 20 de abril de 2015, enfrentei essa situação como a pergunta original, então tive que fazer uma pesquisa e pedir ajuda em uma pergunta. É por isso que agora eu sei muito disso. Não pense que nasci com esse conhecimento, cara.

Se você não está acostumado com terminais e / ou deseja usar uma GUI para simplesmente escolher seus grupos de arquivos e aplicar as transformações, você pode criar seu próprio Nautilus Actions Script para simplesmente clicar com o botão direito do mouse no grupo de arquivos e escolha uma opção no menu de contexto.

Para obter instruções sobre como fazer isso, leia a pergunta, a resposta e os comentários aqui: Como processar imagens JPG em lote para mudar sua qualidade com o Nautilus-Actions?

Boa sorte!

    
por Geppettvs D'Constanzo 04.06.2016 / 01:19
-1

Se você está se referindo a imagens jpeg, a compactação de facto não é possível. Porque jpeg é por definição um formato de arquivo compactado (todo o ruído e pixels inúteis já foram removidos). Você pode compactá-los, mas o tamanho total permanecerá o mesmo. O único algoritmo de compressão avançado que conheço para jpegs é o zipx. Mas o zipx é proprietário da Winzip e garante um max. corte de tamanho de 30% (no modo de arquivo zipx).

Para exibir suas imagens na web, primeiro você deve redimensioná-las (abaixo de 1 MB por cada uma) e, opcionalmente, convertê-las em formato de arquivo png. PNG (= gráficos de rede portáteis) é especialmente otimizado para uma transferência web mais rápida e exibição mais rápida. Usuários avançados podem até converter essas imagens para o formato webp (formato do Google para imagens, algoritmo de carregamento mais rápido).

Você pode converter fotos em lote com o XnConvert e redimensioná-las em lote com o XnView. Baixe o pacote deb daqui: link , então clique com o botão direito nele e abra-o com o software Gnome.

Se você não se importa com a velocidade de carregamento da rede, mas se preocupa com a qualidade, deve manter suas imagens intactas e criar uma biblioteca digital para elas. Talvez enviá-los para um servidor público (Yahoo, Google, etc).

    
por ipse lute 03.06.2016 / 21:36

Tags