Friday, July 20, 2012

ImageMagick mogrify - zmniejsz tysiąc bitmap

Coś co dla programistów webowych jest standardem dla branży embedded wcale nie musi. Mój przyjaciel oprogramował sterownik z wyświetlaczem graficznym. Graficzność sterownika sprowadza się do szybkiego przemiatania bitmapami odczytanymi z karty pamięci. Zasoby mikrokontrolera są skromne dlatego nie ma czasu na finezyjne dekompresowanie w locie, wszystko co możliwe jest przygotowane wcześniej i zapisane na karcie. Graficy dostarczyli mu pliki w rozmiarze niedopasowanym do rozdzielczości wyświetlacza więc mój kolega pracowicie zmienił rozmiar grafik otwierając każdy plik w paincie w którym to robił również przycięcie i dorysowywał kilka prostych kształtów. Przygotowanie grafik dla jednej wersji językowej zajmowało ponad godzinę.
Rozwiązaniem problemu okazał się pakiet ImageMagick i program mogrify z tego pakietu. Wywołany z konsoli program potrafi przycinać, skalować, filtrować grafiki, dodawać napisy i proste kształty a nawet wstawiać grafiki w grafiki, scalać wiele plików w jeden, co najważniejsze może tę samą operację przeprowadzić na dowolnej liczbie plików, po prostu zamiast nazwy konkretnego pliku np ekran.bmp wystarczy podać mu *.bmp żeby program przerobił wszystkie pliki z folderu.
Poniżej dwie linijki ze skryptu do przerabiania grafik:
mogrify -crop 800x405+0+75 -geometry 320x162 *.bmp wycina z pliku obszar o rozmiarze 800x405 pikseli przesunięty o 75 od górnej krawędzi - odcina górny pasek o szerokości 75 pikseli a następnie zmienia rozmiar pliku na 320x162 pikseli. Ta operacja jest przeprowadzana na wszystkich plikach .bmp w folderze z którego został wywołany program mogrify.
mogrify -fill transparent -stroke red -strokewidth 1 -draw "roundRectangle 1,35 319,127 5,5" *pro1.bmp dorysowuje do pliku przezroczysty prostokąt o zaokrąglonych rogach. Krawędź tego prostokąta ma grubość 1 i kolor czerwony, współrzędne dwóch rogów to 1,35 (x1,y1) oraz 319,127(x2,y2) zaokrąglenia mają promień 5 pikseli w obu osiach. Zmiany zostają naniesione na wszystkie pliki których nazwa kończy się na pro1.bmp
Mogrify potrafi znacznie więcej, żeby przekonać się o tym pobierz (darmowy!) pakiet ImageMagick z http://www.imagemagick.org/ a następnie w konsoli (np. windowsa, ja korzystam z windowsa) wpisz mogrify żeby przejrzeć listę możliwych opcji, polecam też http://www.imagemagick.org/www/mogrify.html .

No comments:

Post a Comment