Dimensionamento e rotação de imagem sem depender de dados EXIF?

10

Existe algo como um simples editor de imagens para Linux que permitisse dimensionar e girar a imagem sem usar dados EXIF ​​para o dimensionamento e rotação?

Até agora eu tentei EOG , Shotwell e GIMP e quando eu rodar as imagens, eles armazenam no cabeçalho EXIF. Isso eu não quero.

Mesmo que o GIMP possa fazê-lo, ele consome muito tempo, pois requer muitos cliques do mouse ao lidar com arquivos JPEG.

Jasmine Lognnes
fonte
2
Então, basicamente, se você girar uma imagem 90 graus para a esquerda, deseja que a própria imagem seja girada nos dados 90 graus para a esquerda? Não via informações armazenadas nos dados EXIF, correto?
JakeGould
Exatamente. Eu preciso disso porque os arquivos README.md do Github não entendem EXIF.
Jasmine Lognnes
Bingo! Eu postei uma resposta mais completa, mas acredito que o problema que você está enfrentando é a diferença fundamental entre salvar uma imagem em um programa de edição de imagem moderno versus exportar uma imagem. Minha resposta é mais detalhada, mas acredito que, se você exportar um JPEG via GIMP, obterá os resultados exatos que deseja, sem ter que lidar com dados EXIF ​​sendo favorecidos para transformações como redimensionamento e rotação.
JakeGould
Usar a exportação do GIMP em um jpeg exif stripped adicionou um novo.
Jasmine Lognnes
Sim, pode ter adicionado novos dados EXIF, mas os dados da imagem real foram alterados para corresponder à orientação conforme sua pergunta foi feita?
JakeGould

Respostas:

15

Existe algo como um simples editor de imagens para Linux que permitisse dimensionar e girar a imagem sem usar dados EXIF ​​para o dimensionamento e rotação?

Salvando Versus Exportação

Eu sei que você afirma que não quer fazer isso no GIMP, mas na minha experiência o problema que você está enfrentando - software favorecendo dados de orientação EXIF ​​sobre a transformação de pixels na imagem - se resume à diferença entre exportar uma imagem e salvar uma imagem.

No passado, 100% de todos os editores de imagens no mundo realmente transformavam / modificavam pixels ao lidar com transformações simples de orientação. Apenas recentemente, os programas de edição de imagens passaram a usar dados EXIF ​​para armazenar alguns dados de transformação física.

Por quê? Fácil. Como o formato JPEG é um formato com perdas - mesmo quando a qualidade é definida como 100% -, salvar um JPEG para coisas simples, como a rotação da imagem, degradará lentamente os dados. Em contraste, ao armazenar esses dados como informações EXIF, a imagem JPEG bruta é deixada intacta, mas os dados de transformação são repassados ​​para que você possa ver a imagem girada sem degradar a imagem no processo.

É aí que entra o conceito de exportação. Muitos programas de edição de imagens , como o GIMP, permitem exportar uma imagem que basicamente significaria modificar os próprios dados da imagem e otimizá-la para uso em software de edição sem imagem.

Portanto, embora possa haver outras ferramentas de software que modifiquem explicitamente dados de imagem para tarefas como rotação, pode ser um exagero instalá-las e usá-las. Em vez disso, recomendo simplesmente experimentar a funcionalidade de exportação em qualquer software de edição de imagens que você esteja usando; seja o GIMP, o Photoshop ou qualquer outra coisa.

Processamento em lote

Tudo o que disse, você menciona como o GIMP pode consumir muito tempo para suas necessidades. Não está claro qual é o seu fluxo de trabalho exato, mas se você tiver uma pasta / diretório preenchido com JPEGs que talvez precise processar, recomendo investigar as ferramentas mencionadas nesta outra resposta :

  • exiftran : Uma ferramenta usada para transformar imagens JPEG de câmeras digitais que podem fazer o seguinte:

Ele pode fazer rotações sem perdas como jpegtran, mas ao contrário de jpegtran ele se preocupa com os dados EXIF: ele pode girar imagens automaticamente verificando a tag de orientação exif, atualiza as informações exif se necessário (dimensão da imagem, orientação), também gira a miniatura exif . Pode processar várias imagens de uma só vez.

  • JHead : Especificamente usandojheada-autorotopção descrita como:

Usando a tag 'Orientation' do cabeçalho Exif, gire a imagem para que fique na vertical. O programa 'jpegtran' é usado para executar a rotação. Este programa está presente na maioria das distribuições Linux. Para o Windows, você precisa obter uma cópia dele. Após a rotação, o tag de orientação do cabeçalho Exif é definido como '1' (orientação normal). A miniatura Exif também é girada. Outros campos do cabeçalho Exif, incluindo as dimensões, não são alterados, mas a altura / largura do JPEG é ajustada.

Esse recurso é especialmente útil em câmeras digitais mais novas, que definem o campo de orientação no cabeçalho Exif automaticamente usando um sensor de orientação incorporado na câmera.

Aqui está outra ferramenta mencionada neste outro segmento :

  • NConvert : NConvert é o conversor de imagem de linha de comando multi-formato para Win32, Linux, DOS, OS / 2 e outras plataformas. Detalhes de início rápido parecem estar aqui . E parece que se você usarnconvertcom a-jpegtransopção que é exatamente o que você está procurando. Mas eu me pergunto se isso apenas usa a mesma funcionalidade de biblioteca / núcleojpegtrancomo esta outra resposta nesta questão recomenda?

Finalmente, talvez usar a ferramenta ImageMagick convert com a -auto-orientopção funcionaria para você?

-auto-orient

ajusta uma imagem para que sua orientação seja adequada para visualização (ou seja, orientação superior esquerda).

Este operador lê e redefine a configuração do perfil de imagem EXIF ​​'Orientation' e, em seguida, executa a rotação de 90 graus apropriada na imagem para orientar a imagem, para uma visualização correta.

Essa configuração de perfil EXIF ​​é geralmente definida usando um sensor de gravidade na câmera digital, no entanto, fotos tiradas diretamente para baixo ou para cima podem não ter um valor apropriado. Também as imagens que foram orientadas como 'corrigidas' sem redefinir essa configuração, podem ser 'corrigidas' novamente, resultando em um resultado incorreto. Se o perfil EXIF ​​foi previamente retirado, o operador -auto-orient não fará nada.

JakeGould
fonte
Seria perfeito se uma ferramenta de linha de comando pudesse fazer a rotação real de pixels baseada em EXIF ​​e depois limpar as informações EXIF ​​posteriormente. Isso é possível?
Jasmine Lognnes
1
@JasmineLognnes Eu realmente não tenho usado qualquer uma dessas ferramentas me, mas esta questão é uma boa referência para obter ferramentas I deve investigar, mas parece-me que exiftrane jpegtranpode ser o que você está procurando. Eu experimentaria as opções dessas ferramentas e veria o que acontece. O melhor que posso fazer Boa sorte!
JakeGould
1
Você pode achar engraçado que o sistema tenha selecionado essa resposta como um teste de auditoria na fila de revisão LQ Post. Eu votei para não excluí-lo, BTW, e aparentemente, essa foi a resposta certa. :-)
fixer1234
@ fixer1234 Sim, eu vi isso quando verifiquei posts de baixa qualidade mais cedo. Hilário! Pode ter sido acionado pela quantidade de vários links para pacotes diferentes que eu recomendo. Mas ei! Estou feliz que haja algum mecanismo de policiamento automatizado que tenha pelo menos um componente de filtragem humano.
JakeGould
2

Eu costumo usar jpegtranpara rodar fotografias:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 gira à direita, use 270 para a esquerda (e 180 para flip).

choroba
fonte
2

Ao exportar no GIMP, você pode clicar em Avançado no pop-up antes de salvar, onde você pode desativar o EXIF ​​e o XMP.

O algoritmo geral para script

  • para cada arquivo
  • salvar valor de exiftool * | grep Orientation
  • remova exif com exiftran -ai *
  • use convert -rotatecom valor da etapa 2
d2xdt2
fonte
Isso é exatamente o que eu estava procurando. Uma maneira de detectar se a imagem é girada e, em seguida, uma maneira de girá-la com base nisso. Obrigado!
xarlymg89
0

Você pode usar o Exiftool para remover dados EXIF ​​de imagens JPEG.

SPRBRN
fonte
Sim, é ótimo para isso, mas quando edito as imagens depois, novos cabeçalhos EXIF ​​são adicionados.
Jasmine Lognnes
EXIFTool pode remover os dados, mas não irá alterar, girar ou dimensionar e imagem. Ele apenas limpará esses dados e o JPEG será exibido em qualquer formato bruto em que tenha existido originalmente. Isso é útil em alguns casos, mas não em um caso como esse.
JakeGould