Artykuły
Automatyczne przerabianie obrazków
- Szczegóły
- Utworzono: wtorek, 10, luty 2009 19:32
- Odsłony: 5018
Od dawna marzyło mi się automatyczne przygotowanie obrazków (zdjęć) przeznaczonych na stronę internetową. Taka aplikacja powinna automatycznie zmniejszyć obrazki (zdjęcia) do dwóch wymiarów:
a. 640x (...)
b. 200x (...)
Czyli chciałbym, by zdjęcia w pełnym rozmiarze miały zawsze większy wymiar maksymalnie 640 pikseli, a miniatury 200 pikseli.
Jak łatwo się domyślić pierwszy obrazek reprezentuje obrazek w 'pełnym' rozmiarze - dopasowany jest do maksymalnej szerokości strony, a drugi to miniatura pierwszego.
Dodatkowo chciałem, by w obrazek w 'pełnym' wymiarze wtapiany był w lewym dolnym rogu tekst z adresem mojej strony.
Do realizacji tego zadania posłużyła mi wspaniała biblioteka ImageMagic (na licencji GNU). Z jej pomocą szybko skonstruowałem odpowiedni skrypt 'bash', który może posłużyć do budowy skryptu .php. Do moich celów póki co wystarczy.
Skrypt kopiujemy do tego samego katalogu, co zdjęcia, które zamierzamy poddać wyżej opisanym zmianom. Teraz wystarczy wykonać ściągnięty skrypt, np. tak:
:~$ sh napis_w_zdjeciu
Skoro już jestem przy bashu, to po zakończeniu działania skryptu, w katalogu, w którym zostały stworzone obrazki, warto wydać polecenie:
:~$ ls -1 --sort=time --reverse 640*.* 200*.*
czyli:
-1 <- poustawiaj po jednej nazwie pliku w wierszu,
--sort=time <- posortuj wg czasu powstania,
--reverse <- odwroc sortowanie,
640* 200* <- zastosuj tylko względem plików, których nazwy zaczynają się od 640 i 200.
Polecenie wylistuje jeden pod drugim wszystkie pliki, których nazwy zaczynają się od ciągów '640' oraz '200' akurat w takiej kolejności, by łatwo dało się z nich złożyć wywołanie slimbox. Wystarczy teraz zaznaczyć listę wynikową i przekopiować do artykułu w środowisku Joomla!, całość objąć nawiasami klamrowymi, dopisać ścieżki dostępu i skorzystać z dobrodziejstwa rozszerzenia slimbox. Reszta stanie się sama...
Do pobrania skrypt na licencji GNU.





sposób postępowania:
1. instalacja Virtual PC 2007
2. Na maszynie instalujemy np. Ubuntu 9.10
3. Doinstalowujemy pakiet imagemagic
4. Upewniamy się czy pliki to *.jpg a nie *.JPG oraz nadajemy uprawnienia do folderu w którym są zdjęcia
5. Odpalamy Terminal, przechodzimy do folderu ze zdjęciami
wydajemy polecenie: sh napis_w_zdjeciu
6. gotowe
Wracając do tematu to przetestowałem cygwina i fajnie się zainstalował z uruchomieniem też nie było żadnych problemów. Nawet polecenia które pamiętałem z linucha wykonywał bezproblemowo. Więc do dzieła w home utworzyłem folder a w nim ja opisane w instrukcji parę plików *.jpg, skrypt i do dzieła. Na początku rzucił błędem że nie widzi *.jpg ale kapnąłem się że linux rozróżnia wielkość liter więc pozmieniałem na małe i skrypt przeszedł kilka linijek dalej ale później było już tylko gorzej. Nie wiedział jak wykonać prawie wszystkie polecenia i dałem sobie spokój.
Nagle wpadłem na genialny pomysł że skorzystam z wirtualizacji z którą mam na co dzień do czynienia i ściągam Mandriva Linux 2010 w wersji live.
Będę korzystał z darmowej udostępnionej przez Microsoft maszyny virtual PC 2007
Jak wszystko pójdzie ok opiszę co i jak.
nara.
Powershell mi jakieś błędy rzuca.
Dzięki za odpowiedż.