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

Převod formá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 staré jméno 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 BRUTE01-bash-basic
Odevzdávané souboryconvert_images.sh
Argumenty při spuštěnížádné
Návratová hodnota0 při úspěchu
1 při chybě
Chybový výstup"Nelze vytvorit soubor $name" → stderr
při chybě vytvoření souboru $name