Konvertera bildfilsformat med kommandoraden & sips
Det är mycket enkelt att konvertera bilder till nya filformat tack vare en mängd olika verktyg som är inbyggda 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 kommandorads alternativ som använder samma sips-verktyg som vi har diskuterat tidigare för att utföra batch-storleksändring från kommandoraden.Med hjälp av sips kan du konvertera enstaka bilder till nya bildformat eller till och med utföra batchbildkonverteringar.
Enkel bildkonvertering från kommandoraden
För att konvertera en enda bild med sips, använd följande kommandosträngsyntax:
sips -s format --out
Till exempel, på en fil med namnet "test.jpg" som du vill konvertera till PNG, skulle sips-syntaxen vara:
sips -s format png test.jpg --out test.png
Batchbildkonvertering med klunkar
Att konvertera en grupp bilder är lite knepigare, och att använda enkla jokertecken som när du ändrar storlek med sips fungerar inte riktigt likadant. Du kommer att upptäcka att användning av ett generiskt jokertecken sominte byter namn på filen lika bra, så vi kommer att använda mycket enkel skalskript istället med följande kommandosyntax:
för i in ; gör sips -s format $i --out /$i.;done
för i i .jpeg; do sips -s format png $i --out Converted/$i.png;done
Körning av det kommandot kan resultera i att alla JPEG-bilder konverteras till PNG-format i den nya katalogen.
En potentiellt irriterande hake är att de resulterande filnamnen också kommer att inkludera den ursprungliga filtypen i dem, vilket betyder att du kommer att få filer med titeln "test.jpeg.png". Filtillägget förblir korrekt, det är bara ett namnproblem. Du kan komma runt det genom att byta namn på dem till att börja med och sedan lägga till rätt filtillägg med ett liknande bash-skript, använda regex eller byta namn manuellt med mv.
När du kör sips med vissa filformat kan du stöta på 'lingpng warning'-fel angående exif-data, dessa fel kan ignoreras för det mesta och bildkonverteringen kommer fortfarande att ske.
Tack till Thom för idén om batchkonvertering