GNU/Linux >> Znalost Linux >  >> Linux

Měřítko a rotace obrázku bez závislosti na EXIF ​​datech?

Existuje něco jako jednoduchý editor obrázků pro Linux, který by umožňoval škálování a otáčení obrázku bez použití EXIF ​​dat pro změnu měřítka a rotace?

Ukládání versus export

Vím, že tvrdíte, že to v GIMPu opravdu nechcete, ale podle mých zkušeností se problém, na který narazíte – software upřednostňující data orientace EXIF ​​před skutečnou transformací pixelů v obrázku – scvrkává na rozdíl mezi exportem obrázek a uložení obrázek.

V minulosti 100 % všech editorů obrázků na světě skutečně transformovalo/upravovalo pixely, když se zabývalo jednoduchými transformacemi orientace. Teprve relativně nedávno programy pro úpravu obrázků odložily používání EXIF ​​dat k ukládání některých fyzických transformačních dat.

Proč? Snadný. Vzhledem k tomu, že formát JPEG je ztrátový formát – i když je kvalita nastavena na 100 %, opětovné uložení JPEG pro jednoduché věci, jako je rotace obrazu, bude data pomalu degradovat. Na rozdíl od toho, když tato data uložíte jako informace EXIF, nezpracovaný obrázek JPEG zůstane nedotčen, ale transformační data se předají, takže můžete vidět obrázek otočený, aniž by se během procesu zhoršoval.

Zde vstupuje do hry koncept exportu. Mnoho programů pro úpravu obrázků, jako je GIMP, umožňuje exportovat obrázek, což by v podstatě znamenalo upravit samotná data obrázku a optimalizovat je pro použití v softwaru, který není určen pro úpravu obrázků.

Takže i když mohou existovat další softwarové nástroje, které explicitně upravují obrazová data pro úkoly, jako je rotace, může být příliš náročné je instalovat a používat. Místo toho bych doporučil jednoduše experimentovat s funkcí exportu v jakémkoli softwaru pro úpravu obrázků, který používáte; ať už je to GIMP, Photoshop nebo něco jiného.

Dávkové zpracování

Vše, co bylo řečeno, zmiňujete, že GIMP může být pro vaše potřeby příliš časově náročný. Není jasné, jaký je váš přesný pracovní postup, ale pokud máte složku/adresář naplněný soubory JPEG, které možná budete muset zpracovat, doporučil bych prozkoumat nástroje uvedené v této další odpovědi:

  • exiftran :Nástroj používaný k transformaci obrázků JPEG z digitálního fotoaparátu, který dokáže:

Umí bezeztrátové rotace jako jpegtran, ale na rozdíl od jpegtranu se stará o EXIF ​​data:Dokáže otáčet obrázky automaticky kontrolou značky orientace exif, v případě potřeby aktualizuje informace exif (rozměr obrázku, orientace), také otáčí exifthumbnail. Dokáže zpracovat více obrázků najednou.

  • JHead :Konkrétně pomocí jhead s -autorot možnost, která je popsána jako:

Pomocí značky 'Orientation' v záhlaví Exif otočte obrázek tak, aby byl vzpřímený. K provedení rotace se používá program 'jpegtran'. Tento program je přítomen ve většině distribucí Linuxu. Forwindows, musíte získat jeho kopii. Po otočení je orientační tag záhlaví Exif nastaven na '1' (normální orientace). Exifthumbnail je také otočený. Ostatní pole záhlaví Exif, včetně rozměrů, zůstávají nedotčená, ale výška/šířka JPEG jsou upraveny.

Tato funkce je užitečná zejména u novějších digitálních fotoaparátů, které nastavují pole orientace v záhlaví Exif automaticky pomocí vestavěného senzoru orientace ve fotoaparátu.

Zde je další nástroj zmíněný v tomto jiném vlákně:

  • NConvert :NConvert je multiformátový konvertor obrázků příkazového řádku pro Win32, Linux, DOS, OS/2 a další platformy. Zdá se, že podrobnosti o rychlém spuštění jsou zde. A zdá se, že pokud použijete nconvert s -jpegtrans možnost, která je přesně to, co hledáte. Ale zajímalo by mě, jestli to používá stejnou knihovnu/základní funkcionalitu jpegtran jak doporučuje tato další odpověď na tuto otázku?

Nakonec možná pomocí ImageMagick convert pomocí nástroje -auto-orient tato možnost by pro vás fungovala?

-automatická orientace

upraví obrázek tak, aby jeho orientace byla vhodná pro prohlížení (tj. orientace vlevo nahoře).

Tento operátor načte a resetuje nastavení profilu obrázku EXIF ​​„Orientation“ a poté provede příslušné otočení obrázku o 90 stupňů, aby se obrázek zorientoval, aby byl správně zobrazen.

Toto nastavení EXIF ​​profilu se obvykle nastavuje pomocí gravitačního senzoru v digitálním fotoaparátu, ale fotografie pořízené přímo dolů nebo nahoru nemusí mít vhodnou hodnotu. Také snímky, u kterých byla orientace „opravena“ bez resetování tohoto nastavení, mohou být znovu „opraveny“, což vede k nesprávnému výsledku. Pokud byl profil EXIF ​​dříve odstraněn, operátor -auto-orient neudělá nic.


Obvykle používám jpegtran pro otočení fotografií:

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

90 se otočí doprava, použijte 270 pro levou (a 180 pro převrácení).


Při exportu do GIMPu můžete ve vyskakovacím okně těsně před uložením kliknout na Upřesnit, kde můžete zakázat EXIF ​​a XMP.

Celkový algoritmus pro jeho skriptování:

  1. Pro každý soubor.
  2. Uložte hodnotu z exiftool * | grep Orientation .
  3. Odstraňte exif pomocí exiftran -ai * .
  4. Použijte convert -rotate s hodnotou z kroku 2.

Linux
  1. Extrahování a zobrazení dat pomocí awk

  2. Proč jsou data důležitá a jak je chránit

  3. Jak spustit a zastavit OSWatcher

  1. Jak zobrazit nezpracovaná binární data jako obrázek s danou šířkou a výškou?

  2. Chci změnit DPI pomocí ImageMagick bez změny skutečné velikosti bajtů obrazových dat

  3. Získat datová pole WHOIS bez analýzy?

  1. Jpg do PDF bez ztráty dat?

  2. Jak přejmenovat více fotografií a videí na základě dat Exif?

  3. Změňte velikost LVM bez ztráty dat