Konvertera bildfilformat med kommandoraden & sips

Konvertera bilder till nya filformat är mycket enkelt tack vare en mängd olika verktyg som byggs direkt i OS X (och de flesta Linux-distributioner). Även om den enklaste metoden använder Förhandsgranskning för att konvertera bilder, finns det ett kommandoradsalternativ som använder samma sipsverktyg som vi har diskuterat förut för att utföra batchändring från kommandoraden. Med hjälp av sippor kan du konvertera enstaka bilder till nya bildformat eller ens utföra batch-bildkonverteringar.

Enkel bildkonvertering från kommandoraden

Om du vill konvertera en enda bild med sips, använd följande kommandoradssyntax:

sips -s format [image type] [file name] --out [output file]

Till exempel, i en fil med namnet "test.jpg" som du vill konvertera till PNG, skulle synkroniseringssyntaxen vara:

sips -s format png test.jpg --out test.png

Batch Image Conversion med sips

Att konvertera en grupp bilder är lite svårare, och med enkla jokertecken som när man ändrar storlek med sips fungerar inte detsamma. Du kommer att upptäcka att du använder ett generiskt jokertecken som * inte heller byter namn på filen, så vi använder mycket enkelt skalskript i stället med följande kommandosyntax:

for i in [filename]; do sips -s format [image type] $i --out [destination]/$i.[extension];done

Om vi ​​använder det konverterar vi en mapp med .jpeg-filer till png-filer i en ny undermapp i den nuvarande katalogen, som heter "konverterad":

for i in *.jpeg; do sips -s format png $i --out Converted/$i.png;done

Om du kör det här kommandot kan alla JPEG-bilder konverteras till PNG-format i den nya katalogen.

En eventuellt irriterande fångst är att de resulterande filnamnen kommer att innehålla den ursprungliga filtypen i dem också, vilket betyder att du kommer att sluta med filer med titeln "test.jpeg.png". Filförlängningen stannar korrekt, det är bara en namngivningsproblem. Du kan komma runt det genom att byta namn till dem och börja med att lägga till rätt filtillägg efteråt med ett liknande bash-skript med regex, eller byta namn manuellt med mv.

När du kör sippor med vissa filformat kan du stöta på "lingpng warning" -fel angående exif-data, de flesta fel kan ignoreras och bildkonvertering kommer fortfarande att ske.

Tack gå till Thom för batch konvertering idén