Aplicativo padrão para girar imagens automaticamente com base em EXIF

6

Existem poucos aplicativos instalados em quase todos os computadores com Windows 7. São aplicativos como:

  • Galeria do Windows Live (Windows Live Essentials)
  • Picasa
  • qualquer coisa que saia da caixa com o Windows 7

Qual desses aplicativos é capaz de rotacionar, em lote, todas as imagens em uma pasta baseada em informações EXIF ?

Eu sei que existem muitos aplicativos, que podem fazer exatamente isso, mas algum dos aplicativos padrão faz isso? Às vezes não consigo instalar nada novo e estou usando vários computadores diferentes em lugares diferentes.

Deixe-me repetir - quero virar imagens com base em informações EXIF, não em todas elas.

    
por Tschareck 14.05.2012 / 22:08

5 respostas

2

jhead + jpegtrans

Use o jhead (que requer jpegtran para o recurso auto-rotação ).

A partir do shell do Windows,

jhead.exe -autorot image.JPG

Para um lote de imagens em um diretório, use o globo ocular, por exemplo,

jhead.exe -autorot pics\*.JPG'

jhead não modificará arquivos que não precisem de rotação.

Além disso

Certifique-se de que jheadtran.exe esteja no ambiente PATH , por ex. PATH=%PATH%;C:\Path\to\jpegtran .

Sugiro que o sinalizador -ft seja " Defina a hora de modificação do arquivo como Exif time ".

    
por 04.09.2017 / 01:59
8

O Windows 7 tem o PowerShell instalado por padrão, que pode ser usado para editar imagens de script através do objeto de desenho do sistema WIA (Windows Image Aquisition) ou .Net. Aqui está um rápido script powershell usando o método .Net para girar todos os jpgs encontrados no diretório atual em 90 graus no sentido horário.

[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
dir *.jpg |
ForEach-Object {
  $image = [System.Drawing.image]::FromFile( $_ )
  $image.rotateflip("Rotate90FlipNone")
  $image.save($_)
}

A rotação é limitada por incrementos de 90 graus, incluindo orientação de inversão de imagem.

    
por 15.05.2012 / 00:53
3

Tenho certeza de que não há como alternar imagens com base em informações EXIF usando somente aplicativos padrão que acompanham o Windows. No entanto, pensei que, para o benefício de outras pessoas que possam ter requisitos menos rigorosos, mencionei 2 outras formas.

Eu recomendaria XNView: link (não XNViewMP) para rotação sem perdas JPEG (se você estiver bem com a possibilidade de perder alguns pixels fora das bordas, como é o limite inerente de operações jpeg sem perdas):

Sevocênãoestivercertoemperderpixelsnasbordase/ouquisersalvarosresultadosemumformatodiferente,ouquiserrealizarmanipulaçõesadicionaisdemaneiraintuitiva(oprocessamentoemlotedoXNViewéumpoucodifícildeusar,IMHO),RecomendooBatchImageResizer,queéumaplicativopago: link

EDIT:AnovaversãodoBatchImageResizersuportarotaçãoautomáticadeimagemcombasenoreconhecimentodefaces.Elepodedetectarrostoshumanosemsuasfotosegirarasimagensautomaticamentedeacordo.PodeserútilquandoastagsdeorientaçãoEXIFestãoausentes,porexemplo,evocêtemcentenasdeimagensqueprecisagirar:

Disclaimer: Eu uso os dois programas diariamente: XNView para visualização / organização de imagens, Batch Image Resizer para processamento de imagem em massa.

    
por 24.04.2015 / 12:07
1

Vá para o diretório onde estão todas as suas fotos. Mude para a vista de detalhes. Clique com o botão direito em uma coluna e clique em Mais. Marque o detalhe apropriado do EXIF e OK. Agora, filtre todos os arquivos com base nesse detalhe EXIF e, finalmente, selecione todas as fotos, clique com o botão direito do mouse para girar no sentido horário ou anti-horário.

    
por 18.03.2018 / 21:29
-1

Usou o seguinte para girar um jpg originado de um arquivo csv:

function batchRotateFromCSV([Parameter(Mandatory=$True)] $csvFile) {
    [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")

    $imageFormat = "System.Drawing.Imaging.ImageFormat" -as [type]

    Import-Csv $csvFile | Select PathToImage | ForEach {
        $image = [System.Drawing.image]::FromFile($_.PortraitFile)
        $image.RotateFlip([System.Drawing.RotateFlipType]::Rotate90FlipNone)
        $image.save($_.PathToImage, $imageFormat::jpeg)
    }
}

Você pode, é claro, alterar o formato do arquivo da imagem também.

Observe que PathToImage será o nome do cabeçalho no seu CSV.

    
por 09.08.2016 / 15:44