1. Převod formátu obrázků

Převod fromátu obrázků #

Napište skript, který v aktuálním pracovním adresáři převede všechny obrázky typu tif, tiff a jpg, jpeg na formát png. Pro převod obrázků použijte programu convert pouze s parametry stare jmného obrázku a nové jméno obrázku, např. convert obrazek.tif obrazek.png

Vstup:  je definován aktuálním pracovním adresářem

Výstup: nově vytvořené soubory typy png v aktuálním pracovním adresáři
        návratový kód 0, pokud proběhla konverze všech obrázků
        návratový kód 1, pokud nešlo nějaký obrázek vytvořit

Motivace #

Cílem této úlohy je zkusit vytvořit bashový skript, který bude převádět zadané formáty obrázků na formát png. Nástroj convert automaticky nastaví formát obrázku na základě zadaného jména souboru.

Modifikace jména #

Pokud chcete změnit koncovku jména souboru například z tif na png, pak můžete využít operace oříznutí viz advance bash skipting guide.

Otestujte, co provede následující příkaz: ${soubor%tif}png

Chybové stavy #

Program musí skončit s návratovou hodnotou 1 a výpisem "Nelze vytvorit soubor $name" na stderr v případě, že skript nemůže vytvořit cílový soubor, ať už z důvodu, že soubor nelze vytvořit, nebo nelze číst zdrojový soubor.

Ukázkový příklad #

  • Stáhněte si zakomprimované obsahy testovacích adresářů test1.tgz test2.tgz test3.tgz.
  • Rozbalte si adresáře na vašem počítači příkazem tar xzf test1.tgz a adresář se Vám vytvoří v aktuálním adresáři.
  • Nakopírujte si svůj skript do adresáře a spusťte ho.
  • Pro testování chyb nastavte pro některý zdrojový soubor chmod a-rw práva, nebo pro celý adresář chmod a-w práva.
  • Po prvním spuštění můžete také nastavit práva chmod a-w pro jeden i více vytvořených souborů a spustit skript znovu.

Testování #

Struktura testů #

  • Jednoduché testy, kdy je pouze jeden typ obrázku a jednoduchá jména
  • Testy se složitějšími jmény obrázků obsahující mezeru a případně jiné nehezké znaky
  • Testy, kdy soubor nelze vytvořit, protože už takový soubor existuje a vy nemáte práva ho smazat ani přepsat
  • Testy, kdy nemáte práva číst ze souboru
  • Testy, kdy nemáte práva vytvořit v adresáři žádný soubor

Odevzdání #

Povinné zadání
Název v BRUTE 01-bash-basic
Odevzdávané soubory convert_images.sh
Argumenty při spuštění žádné
Návratová hodnota 0 při úspěchu
1 při chybě
Chybový výstup "Nelze vytvorit soubor $name" → stderr
při chybě vytvoření souboru $name