Como reduzir o tamanho do arquivo sem perder qualidade ou resolução?


7

Tenho mais de 2.300 fotos que desejo transferir para o meu telefone, mas no tamanho original elas ocupam muito espaço (6,44 gb) que eu gostaria de aparar sem sacrificar a qualidade ou a resolução. Eu sei que isso pode ser feito no Linux com algo como pgncrush. Atualmente, tenho acesso a um sistema Windows e todos os arquivos estão no formato jpeg.

Como eu faço isso?


As cópias das imagens no telefone serão exibidas apenas na tela do telefone ou você deseja imprimi-las / compartilhá-las do telefone para outro monitor?
Edd

2
O termo " TANSTAAFL " vem à mente aqui. Você pode executar todos esses utilitários Linux no Windows com um pouco de trabalho. Mas, em geral, eles oferecem apenas uma pequena economia ou exigem uma redução na resolução ou na qualidade da imagem.
Por favor, leia meu perfil

11
Isso não é um pato, é um cisne!

11
Você sempre deve ter reputação suficiente para responder sua própria pergunta. Essa resposta provavelmente lhe dará mais reputação.
ChrisF

2
Esteja ciente de que o upload para (seu host de imagem favorito aqui) pode ser afetado pela recompressão da imagem para você, o que pode tornar inútil as comparações.
Rowland Shaw

Respostas:


18

Tamanho, qualidade, resolução do arquivo - escolha dois.

Se você tiver imagens em um formato não compactado como o BMP, poderá reduzi-las um pouco, sem sacrificar nenhuma qualidade ou resolução, salvando-as em um formato compactado que não faça compactação com perdas, como PNG-24.

As imagens JPEG já estão compactadas, portanto, com a qualidade e a resolução fornecidas, elas já são tão pequenas quanto podem ser. Portanto, se você quiser um tamanho de arquivo menor, precisará sacrificar a qualidade ou a resolução.

Como você mostrará a imagem em um telefone, poderá sacrificar um pouco de qualidade sem obter nenhuma diferença perceptível. Se as imagens JPEG forem salvas na qualidade 100, tente fazer uma cópia usando, por exemplo, a qualidade 80 e verifique se isso é bom o suficiente para suas necessidades.

Se a resolução das imagens for maior que a resolução da tela do seu telefone, você usaria essa resolução extra se ampliar a imagem. Nesse caso, reduzir a resolução limitaria apenas o quanto você pode ampliar.


às vezes, compactá-los ou copiá-los pode comprimir os jpgs um pouco mais.
Michael Nielsen

11
@ MichaelNielsen: Provavelmente é porque contém alguns metadados que não são compactados; portanto, salvar a imagem sem metadados a tornaria ainda menor.
Guffa

seria realmente estúpido remover os metadados em seu próprio banco de dados.
Michael Nielsen

3
@ MichaelNielsen: Sim, mas você está perdendo o objetivo. Os metadados são o motivo pelo qual existem dados compactáveis ​​no arquivo.
Guffa

Existem outros formatos além do JPG que podem ser armazenados com mais eficiência do que o JPG, portanto, convertendo para um deles, você pode obter uma melhor compactação sem perda de qualidade percebida. Mais informações na minha resposta abaixo photo.stackexchange.com/a/79086/4272
Chris Wuestefeld

5

Vamos começar com uma noção: os compressores são capazes de reduzir o tamanho de algo (como um arquivo de texto) processando-o e representando a mesma informação usando menos símbolos. É assim que o Zip reduz um arquivo de texto. Esta é uma compactação sem perdas.

Imagens e áudio (e, portanto, vídeo) usam uma quantidade muito grande de informações: por exemplo, uma imagem de 5 megapixels, em um formato que não compacta nada (como TIFF) levaria 5 megabytes x 3 cores * RGB) = 15 MB de espaço.

Para reduzir o tamanho do arquivo, o formato JPEG faz com que você perca algumas informações da imagem: qualidade, cores etc. É por isso que você pode abrir um JPEG em algum programa de edição de fotos (Photoshop, Gimp, etc.) e salvá-lo com menos qualidade: usará menos informações para representar sua imagem, com um tamanho de arquivo menor, mas perderá alguma qualidade. Se você (ou qualquer pessoa) conseguirá notar que a baixa qualidade é um ponto importante ao escolher "quanta compressão" você deseja.

Portanto: em geral, para fins práticos, você perderá muita qualidade para reduzir o tamanho de uma imagem JPEG, porque ela já está compactada.

Mas você quer usar isso no seu celular, certo?

Você não disse qual celular você tem. Vamos supor que você tenha um Samsung Galaxy S3 . Você pode ver as especificações: a resolução da tela é de 1280x720 pixels.

Portanto, quando você vê uma imagem nela, não importa o tamanho da imagem original: poderá ver 1280x720 pixels, porque essa é a quantidade máxima de pixels que a célula poderá mostrar.

Se você tirar todas as suas fotos, redimensioná-las para 1280x720 pixels e abrir no telefone, você as verá da mesma maneira que as veria com a resolução original. Você estará perdendo a "resolução" da imagem original, mas é algo que você não conseguiria ver no seu telefone de qualquer maneira ...

Como você faz isso no Windows : use qualquer programa que você gosta para editar fotos: Photoshop, Gimp, IrfanView ... mas como você está falando sobre isso em uma grande quantidade de arquivos, provavelmente está pensando no ImageMagick ou um programa semelhante, que pode executar a mesma operação em uma grande quantidade de arquivos.

Edit: para fazer isso com o Imagemagick:

1 - copie todas as suas fotos para uma nova pasta (ex .: Temp1), para evitar perder os originais

2 - crie uma nova pasta onde suas fotos estarão depois de serem redimensionadas (ex .: Temp2)

3 - abra uma cmdjanela, vá para o diretório que possui as fotos copiadas (Temp1)

4 - tipo:

mogrify -path full_path_to_Temp2 -resize 1280x720 * .jpg


Era isso que eu estava procurando. Você também adivinhou meu telefone, é um S3. Estou baixando o imagemagick agora. qual seria o comando redimensionar as imagens de todos os arquivos em uma pasta para 1280x720?
farelo de

No wordpress eu uso um plugin para redimensionar automaticamente as imagens enviadas. Ele usa um utilitário do lado do servidor chamado littleutils ( sourceforge.net/projects/littleutils ). Eu queria usar algo assim. O que me faz acreditar que é possível compactar mais o JPEG sem perder muita qualidade ou reduzir a resolução. Atualmente, a maioria das minhas imagens são 2305x3072 ou 2592X1944.
farelo de

11
Eu encontrei isso no linux manpagez.com/man/1/opt-jpg
bran

2
oh, então você está disposto a sacrificar a resolução?
Digital Lightcraft

4
Embora eu concorde com tudo o que foi dito aqui, gostaria de ressaltar que, embora muitas pessoas mostrem fotos em seu telefone, elas também gostam de aumentar o zoom para mostrar partes da imagem com mais detalhes. Se você fizer isso, mas sua imagem for reduzida para apenas a resolução da tela do telefone, você perceberá a diferença, pois agora está mostrando uma região menor na resolução do telefone, mas você já perdeu esses pixels. Apenas um pensamento.
Eu estou tão confuso

2

Você pode obter otimização sem perdas (com base na otimização das tabelas Huffman). O utilitário jpegoptim fornece esse algoritmo.

Instale-o com (no debian):

apt-get install jpegoptim

Para executar uma simulação (modo sem ação):

jpegoptim -n -p dsc07844.jpg

retorna:

dsc07844.jpg 3872x2592 24bit Exif  [OK] 3057132 --> 2518805 bytes (17.61%), optimized.

Otimizar:

jpegoptim -p dsc07844.jpg

Ele preserva os metadados exif


2

Ah, bem, você respondeu a si mesmo, mas mudou seus requisitos. "Nenhuma perda de qualidade" e "nenhuma perda de qualidade a olho nu" são muito diferentes nas imagens.

Além disso, PNGcrush e opt-jpg funcionam de maneira completamente diferente; apenas observando isso porque você mencionou PNGcrush no seu OP. PNGcrush otimiza apenas metadados sobre a imagem, não a imagem em si. É por isso que você normalmente ganha apenas 1-2%.

Francamente, quanto às duas imagens na sua resposta, elas parecem completamente diferentes aos meus olhos. A imagem otimizada é muito mais desbotada e possui menos profundidade de preto. Como é um JPEG, isso provavelmente foi feito condensando a paleta, o que fará a imagem parecer ... diferente.

A resposta para sua pergunta original é que você não pode reduzir significativamente o tamanho do arquivo sem afetar algum tipo de qualidade (exceto as economias de 1 a 2% mencionadas anteriormente por metadados ou compactação de tags.) Ou seja , removendo dados EXIF, etc., dependendo o formato do arquivo (RAW, TIFF, JPEG).

Para reduzir o tamanho do arquivo por qualquer medida real, você deve perder a qualidade ou a resolução ou ambas. Se não fosse esse o caso, o fotógrafo não se incomodaria em processar em RAW.


1

Dada a resolução e o nível de qualidade, existem vários outros formatos de arquivo de imagem que podem fornecer o equivalente, mas armazenam os dados de forma mais compacta do que o antigo JPEG padrão.

Algumas opções incluem

  • O JPEG2000 , identificado pela extensão .jp2, é um formato um pouco mais antigo que nunca ficou popular. Ele usa transformadas wavelet em vez do DCT (transformação discreta de cosseno) do jpeg, que resulta em artefatos menos óbvios, permitindo maior compressão com uma qualidade percebida comparável. Eles reivindicam uma vantagem de 20%. https://en.wikipedia.org/wiki/JPEG_2000

  • O WebP do Google usa algoritmos mais avançados (se bem entendi, é análogo à melhor compactação H.265 para vídeo de hoje em comparação ao MPEG), que eles alegam que pode economizar 40% com qualidade equivalente. http://www.cnet.com/news/google-offers-jpeg-alternative-for-faster-web/# !

  • O BPG (para "melhores gráficos portáteis") é um novo esforço de código aberto. Parece ser semelhante na abordagem ao WebP, com vantagens adicionais como melhor profundidade de bits e faixa dinâmica, mas atualmente tem menos compatibilidade com vários softwares. http://bellard.org/bpg/

Se você quiser detalhes minuciosos sobre como esses e outros outros se comparam, pode ver tabelas e gráficos aqui: https://people.mozilla.org/~josh/lossy_compressed_image_study_july_2014/


0

Você precisa "compactar" a pasta - existem várias maneiras de fazer isso - a clássica é "compactá-las".

No Windows (XP em diante), clique com o botão direito do mouse na pasta que contém, clique em "enviar para" e depois em "Pasta compactada"

Isso deve reduzir o tamanho da pasta e salvá-lo como um arquivo .zip.

NO ENTANTO - os arquivos JPEG já estão compactados em sua própria codificação - portanto, o arquivo compactado final pode não ser muito diferente.


Se eu os zipar, não poderei vê-los no meu telefone para onde os transferirei. Eu sei que existem maneiras de fazer isso individualmente. Eu preciso de uma maneira de fazê-lo de uma só vez. De preferência sob janelas.
farelo de

Ok, entendi - hmm, se eles devem ser mantidos como jpg, sem sacrificar a qualidade ou a resolução, não acho que você será capaz de fazê-lo. Se você deseja diminuir a qualidade levemente, para que a diferença não seja óbvia, você poderá facilmente economizar uma boa quantidade de tamanho.
Digital Lightcraft

0

Você pode usar um programa chamado Moo0 Image Sizer , que permite analisar novamente muitas imagens de uma só vez (a partir de 15 de dezembro de 2012, os formatos disponíveis são jpg, png, bmp e gif).

O programa é gratuito para uso não comercial.


Olá E. Fisher, bem-vindo ao site. Seria útil, eu acho, aprofundar sua resposta com mais alguns detalhes confirmados.
John Cavan

0

Eu encontrei a resposta que estava procurando. A resposta é opt-jpg para Linux. Não o encontrei no repositório ubuntu. Então você tem que baixar a fonte do littleutils ( http://sourceforge.net/projects/littleutils/ ) que possui o opt-jpg incluído.

Para instalar a partir da fonte. Faça o download do Tar com wget e:

tar jxvf littleutils-1.0.27.tar.bz2 && cd littleutils-1.0.24

...

./configure --prefix=/usr && make && make install && make install-extra

Você tem que ser root para sudo su

Eu usei uma imagem de pato, por exemplo. O arquivo não otimizado é de 1,1M após a otimização de seus 991kb sem perder a qualidade da imagem (a olho nu) ou alterar a resolução da imagem. Pode não parecer uma grande diferença (uma redução de 108kb), mas com mais de 2300 imagens e tamanho de 6,44 gb, em média, com a mesma redução de tamanho, pode adicionar muito espaço. insira a descrição da imagem aqui

Você pode ver a imagem original do Duck carregada no flickr: insira a descrição da imagem aqui

E o otimizado: insira a descrição da imagem aqui

Olho nu pode dizer a diferença?

Quanto a quanto espaço eu realmente economizei. Você terá que esperar um pouco, porque terei que deixá-lo funcionar quando não estiver usando o comp. Isso levará um tempo e eu lembrarei de relatar.


Apenas para atualizar as pessoas sobre quanto espaço economizei. Demorou cerca de 25 minutos para terminar e eu economizei cerca de 200 MB de tamanho.
farelo de

11
Então, uma economia de 3% no geral?
Por favor, leia meu perfil

2
Como um aparte, você sabe que é um cisne, e não um pato, certo?
Rowland Shaw

@mattdm Sim não muito, mas agora eu sei que isso pode ser feito e não é realmente um "TANSTAAFL" :)
farelo de

11
O olho nu não pode dizer a diferença quando você reduz a resolução para corresponder ao telefone, nem diminui a qualidade de 12 para 8. Essas duas coisas juntas poupariam 75%, e não 3%, do tamanho do arquivo , trazendo a coleção inteira para um show, sem nenhuma maneira de saber sem aumentar o zoom. (Não tem certeza de qual configuração de qualidade foi salva originalmente, mas geralmente é possível obter uma imagem em tamanho HD até 250kb e ainda parecer ótima).
wedstrom


0

O "Image Resizer for Windows" é um ótimo utilitário gratuito em menos de 1 MB para usuários do Windows. Todas as imagens de 5 MB ou 10 MB podem ser reduzidas a menos de 200 kb, com quase a mesma clareza. O problema é: essas imagens de 10 MB têm uma resolução de 4000 X 3000, mas seu telefone ou computador é apenas um terço disso, fazendo com que pareça quase o mesmo. Portanto, a menos que você imprima alguma dessas opções, recomendo compactar suas imagens usando esta ferramenta bem simples. Basta selecionar todos os arquivos, clicar com o botão direito do mouse e dizer Redimensionar. Ele converterá 100 imagens em menos de um minuto.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.