Konvertering af billedfilformater med kommandolinjen og sip

Konvertere billeder til nye filformater er meget let takket være en række værktøjer, der er bygget direkte til OS X (og de fleste Linux-distributioner). Selv om den nemmeste metode bruger Preview til konvertering af billeder, er der en kommandolinje-indstilling, der bruger det samme værktøjsverktøy, vi har diskuteret før, for at udføre batch resizing fra kommandolinjen. Ved hjælp af sip kan du konvertere enkeltbilleder til nye billedformater eller endda udføre batch-billedkonverteringer.

Enkel billedkonvertering fra kommandolinjen

Hvis du vil konvertere et enkelt billede med sip, skal du bruge følgende kommandostrengsyntax:

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

For eksempel på en fil, der hedder "test.jpg", som du vil konvertere til PNG, vil synkroniseringssyntaxen være:

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

Batch Image Conversion med sip

Konvertering af en gruppe af billeder er lidt sværere, og ved hjælp af simple jokertegn, som når du ændrer størrelsen på sip, virker det ikke helt det samme. Du finder ud af at bruge et generisk wildcard som * ikke omdøber filen også, så vi bruger meget simpelt shell scripting i stedet med følgende kommandosyntax:

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

Når vi bruger det, konverterer vi en mappe af .jpeg-filer til png-filer i en ny undermappe i den aktuelle mappe, kaldet "Konverteret":

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

Hvis du kører den kommando, kan alle JPEG-billeder konverteres til PNG-format i den nye mappe.

En potentielt irriterende fangst er de resulterende filnavne vil også indeholde den oprindelige filtype i dem, hvilket betyder at du ender med filer med titlen "test.jpeg.png". Filforlængelsen forbliver korrekt, det er kun et navngivningsproblem. Du kunne komme rundt ved at omdøbe dem til at begynde med og derefter tilføje den rigtige filtype efterfølgende med et lignende bash script, ved hjælp af regex, eller omdøbt manuelt med mv.

Når du kører søppel med nogle filformater, kan du støde på "lingpng warning" -fejl angående exif-data, disse fejl kan ignoreres for det meste, og billedkonvertering vil stadig finde sted.

Tak gå til Thom for batch konvertering ideen