Beeldbestandsindelingen converteren met de opdrachtregel & sips

Het converteren van afbeeldingen naar nieuwe bestandsindelingen is heel gemakkelijk dankzij een verscheidenheid aan hulpmiddelen die direct in OS X (en de meeste Linux-distributies) zijn ingebouwd. Hoewel de gemakkelijkste methode Preview gebruikt voor het converteren van afbeeldingen, is er een opdrachtregeloptie die dezelfde slokooltool gebruikt die we eerder hebben besproken om batchgrootte te wijzigen vanaf de opdrachtregel. Met behulp van slokjes kunt u afzonderlijke afbeeldingen converteren naar nieuwe afbeeldingsindelingen of zelfs batchafbeeldingsconversies uitvoeren.

Eenvoudige beeldconversie vanaf de opdrachtregel

Gebruik de syntaxis van de volgende opdrachtreeks om een ​​enkele afbeelding met noppen te converteren:

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

Bijvoorbeeld, in een bestand met de naam "test.jpg" dat u naar PNG wilt converteren, zou de sips-syntaxis zijn:

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

Batch afbeelding conversie met slokjes

Het converteren van een groep afbeeldingen is een beetje lastiger, en het gebruik van eenvoudige jokertekens, zoals het formaat wijzigen met slokjes, werkt niet helemaal hetzelfde. Je zult merken dat het gebruik van een generiek jokerteken zoals * niet ook het bestand een nieuwe naam geeft, dus gebruiken we in plaats daarvan zeer eenvoudige shell-scripting met de volgende syntaxis van de opdracht:

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

Om dat te gebruiken, zullen we een map met .jpeg-bestanden converteren naar png-bestanden in een nieuwe submap van de huidige map, genaamd "Geconverteerd":

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

Als u die opdracht uitvoert, kunnen alle JPEG-afbeeldingen in de nieuwe map worden geconverteerd naar PNG-indeling.

Een potentieel vervelende vangst is dat de resulterende bestandsnamen ook het originele bestandstype bevatten, wat betekent dat je eindigt met bestanden met de naam "test.jpeg.png". De bestandsextensie blijft correct, het is maar een probleem met de naamgeving. Je kunt dit omzeilen door ze eerst te hernoemen en daarna de juiste bestandsextensie toe te voegen met een vergelijkbaar bash-script, met behulp van regex, of handmatig hernoemd met mv.

Wanneer slokjes met sommige bestandsformaten worden uitgevoerd, kunnen er 'lingpng warning'-fouten optreden met betrekking tot exif-gegevens, die fouten kunnen grotendeels worden genegeerd en de beeldconversie zal nog steeds plaatsvinden.

Bedankt aan Thom voor het idee voor batchconversie