Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Czy ktoś podpowie mi jak bezboleśnie zmniejszyć masowo zdjęcia do wielkości 300kb (na windzie korzystam z PhotoResize http://www.rw-designer.com/picture-resize - bardzo fajnie i bezboleśnie działa, prawie nie widać utraty jakości).
Teraz potrzebuje zmniejszyć zdjęcia w katalogach(bez zmiany ich położenia) - ok kilku tysięcy katalogów w nich zdjęcia, w sumie ważą ok 100-140 gb, czy zna ktoś jakąś komendę, którą wykorzystam do zamiany plików większych niż 300kb do tej wielkości?
Oczywiście wszystko do zrobienia w konsoli (nie ma środowiska graficznego tylko serwer plików na sambie)
Ostatnio edytowany przez DWSD (2011-08-15 17:56:32)
Offline
W konsoli jest kombajn do tego:
aptitude install imagemagic man convert
convert można użyć w pętli for (w skrypcie) choćby i dla miliona obrazków.
Inna sprawa, ze można zmieniać rozdzielczość i wymiary, samej wielkości pliku nigdy nie probowałem.
Sznurek:
http://debian.linux.pl/threads/10170-Convert-i-masowa-zmiana-wielko%C5%9Bci-plik%C3%B3w-graficznych
Tu masz prosty programik graficzny:
http://forums.debian.net/viewtopic.php?f=20&t=59827
I jeszcze to:
http://qt-apps.org/content/show.php/SIR+-+Simple+Image+Resizer?content=56790
U mnie się skompilował grzecznie.
Ostatnio edytowany przez Jacekalex (2011-08-15 19:37:12)
Offline
jak przerobić ten drugi skrypt, żeby nie korzystał z okienek, tylko się co najwyżej pytał w konsoli? no i zamieniał pliki wsadowe a nie tworzył nowych, ostatnie całowicie odpada - nie mam środowiska graficznego, a convert zrobi tylko do wielkości w pixelach, a potrzebuje ustalić wagę pliku.
ciężka sprawa
Ostatnio edytowany przez DWSD (2011-08-15 19:22:11)
Offline
Jak wielkość zmniejszyć, nie wiem.
Generalnie obrazek jest elementem graficznym - i gotowego parametru nie widzę.
Ja bym popróbował na 1 - 3 obrazkach w Gimpie, potem taki sam efekt jak w Gimpie zrobił w convert, i jeśli będzie ok, wsadził go do pętli.
I kombinowałbym z [url=http://debian.linux.pl/threads/10170-Convert-i-masowa-zmiana-wielko%C5%9Bci-plik%C3%B3w-graficznych?s=2f157708880b9ca92a0bd7fe8a8fc3a8&p=66479&viewfull=1#post66479]tym skryptem[/url].
Offline
chciałem z tej strony poprzec autora tematu, tez mowie że plik "wazy" :]
nauczylem sie tego od starszego somsiada ...
inna sprawa jest ze bit nie jest tez jednostka objetosci / długości :] wiec nie moze "zajmować miejsca"
chyba najpoprawniej jest powiedzieć że bit jest stanem energetycznym.
a zatem jednostka powinno byc chyba "ilosc stanow energetycznych potrzebnych to zapisania pliku", jako ze jest to długi zapis proponuje skrót ISEPTZP
pozdrawiam
Paweł "GindeK" I.
[edit]
dodałem kilka zjedzonych literek.
przegląda ktoś ten skrypt ? bo nie wiem czy jest sens żebym kombinował :]
Ostatnio edytowany przez gindek (2011-08-15 21:03:07)
Offline
Jak może plik ważyć? bit to nie jest jednostka wagi :)
chyba najpoprawniej jest powiedzieć że bit jest stanem energetycznym.
a zatem jednostka powinno byc chyba "ilosc stanow energetycznych potrzebnych to zapisania pliku", jako ze jest to długi zapis proponuje skrót ISEPTZP[/quote]
Wszyscy wiedzą o co chodzi więc nie rozwadniajcie tematu.
Obawiam się ,że jednym poleceniem się tu nie zdziała.
"waga" zdjęcia zależy od rozdzielczości ,formatu ,kompresji i jeszcze paru innych rzeczy.
Skrypt najpierw musiałby sprawdzać to wszystko na danym zdjęciu a potem ewentualnie zmieniać któryś z parametrów.
[b]Problemy rozwiązujemy na forum nie na PW[/b] -> Niech inni na tym skorzystają.
[url=http://dug.net.pl/]Polski portal Debiana[/url]
Offline
no w przypadku jpg wystarczy jechać z ( cyt. z gimp ) "jakoscia".
no ale faktycznie przydała by sie do tego biblioteka z jakims interejsem do niej, a nie skrypcik :],
mozna ustalic jeden rozmiar pliku ( rozdzielczosc), a nastepnie jechac z jakoscia sprawdzac czy rozmiar ejst wystarczajaco maly, jezeli nie to usuwac plik i od nowa jechac z jakoscia w dol.
Ostatnio edytowany przez gindek (2011-08-15 21:24:09)
Offline
widzę, że temat się rozwinął, jak zwróciłem uwagę na ten programik windowsowy, to on zmniejsza trochę rozdzielczość, jakość ustawia na 60, obcina nie wykorzystane kolory z pliku albo nie potrzebne odcienie, i nie widać wielkich różnic między wejsiowym plikiem a wyjściowym (oczywiście nie powiększamy do pikseli i nie porównujemy w ten sposób), znajdziemy coś podobnego jakiś projekt?
Offline
Jest tyle takich samych nazw oznaczających co innego:
zdjęcie o "rozdzielczości" 300 dpi może ważyć tyle samo co zdjęcie o rozdzielczości 72 dpi. Pierwsze się nadaje do druku, drugie tylko do internetu.
A rozdzielczość 800 x 600 px to nie to samo co dpi
===
wracając do tematu - jakim algorytmem mają być zmniejszane zdjęcia: bicubic, lanczos, liniowo ? Wszystko to wpływa na "wagę" pliku wynikowego.
BTW - takie hurtowe zmniejszanie zdjęć bez patrzenia na jakość to mi się bez sensu widzi.
Jedyne sensowne rozwiązanie: pliki startowe zapisane w tiffie, potem skalowanie do wymaganej rozdzielczości i konwersja do jpg.
Offline
Ten wymóg 300kb skąd się wziął? Raczej naturalnym rozwiązaniem jest skalowanie zdjęć do jakieś wielkości i jakości a nie objętości ? No chyba że ma być maks 300kb ale to też dziwnie.
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00003 | SET NAMES latin2 |
0.00085 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.145.155.149' WHERE u.id=1 |
0.00058 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.145.155.149', 1732574300) |
0.00035 | SELECT * FROM punbb_online WHERE logged<1732574000 |
0.00064 | SELECT topic_id FROM punbb_posts WHERE id=179444 |
0.00094 | SELECT id FROM punbb_posts WHERE topic_id=19529 ORDER BY posted |
0.00057 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=19529 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00084 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=19529 ORDER BY p.id LIMIT 0,25 |
0.00078 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=19529 |
Total query time: 0.00572 s |