imgo / imgo Goto Github PK
View Code? Open in Web Editor NEWImage optimization tool
Home Page: http://imgo.github.com/imgo
Image optimization tool
Home Page: http://imgo.github.com/imgo
при использовании режима -m в статистика ничанет врать, т.к увеличивается число файлов и их размер, реальный профит выше, чем говорит imgo
Добавить возможность генерировать спрайты:
Подумать как можно сделать прогресс-бар для больших картинок, чтобы понимать на каком этапе находится
врежиме мультипас обрабатывается оригинальный файл
Подумать над автотестами imgo.
Хочется получить возможность обработать все файлы в заданной папке, но не трогать файлы, раположенные в подпапках этой папки.
Скорее всего логичнее добавить какой-то отдельный параметр типа -r, который будет включать рекурсию (либо обратный, чтоыб не ломать совместимость -nr, отключающий рекурсию.
Тогда запуск: imgo -r . (imgo -nr .) обработает все файлы по описанному выше условию.
Спасибо.
У меня есть много тайлов для карты, когда пытаюсь их оптимизировать получаю вот такие ошибки:
username@pc:/tiles/opt_map$ imgo -m -b -png .
cat: /tmp/imgopng102123192530058517629464/14127499625960873112017.png: No such file or directory
Error with defluff
./16/44717/20046.png: 7971 => 6841, Saved: 1130 bytes (14%)
cat: /tmp/imgopng327052499620631413130343/2736522523576579631311.png: No such file or directory
Error with defluff
./16/44717/20017.png: 9200 => 7398, Saved: 1802 bytes (19%)
./16/44717/20019.png: 17276 => 15266, Saved: 2010 bytes (11%)
cat: /tmp/imgopng2386698162109700311560/578369275474284228107.png: No such file or directory
Error with defluff
./16/44717/19984.png: 895 => 672, Saved: 223 bytes (24%)
cat: /tmp/imgopng31286115229476245321193/98659281252571980711176.png: No such file or directory
Error with defluff
cat: /tmp/imgopng9030257651785348926415/1230728341247832749325957.png: No such file or directory
Error with defluff
Записи следующего вида:
./16/44717/20017.png: 9200 => 7398, Saved: 1802 bytes (19%)
./16/44717/20019.png: 17276 => 15266, Saved: 2010 bytes (11%)
позволяют мне предполагать, что некоторые картинки пережимаются нормально, а некоторые пропускаются или идут не по порядку.
конвертирование не анимированного GIF в PNG
→ imgo htdocs/images/jquery.png
Result:
Processed: Сould not compress any of the 1 files
date: 38: No such file or directory
Total time: (HH:MM:SS)
date
работает по-другому, там ключ -r
— это дата изменения указанного файла.
It would be cool if IMGO saved history like how much files did it process and how much total bytes were saved, so you could look at this and see how awesome IMGO is :)
http://www.xiper.net/collect/services/graphics/svg-compressor.html
Имена временных файлов и папок генерируются рандомайзером, можно использовать встроенную функцию.
Проблемы с sed под linux (Ubuntu)
http://clubs.ya.ru/ui/replies.xml?item_no=211
Alpha-канал, прозрачность каждого пикселя можно менять от 0 до 100%, с шагом в 1%.
Насколько я помню, там всё-таки 256 градаций.
http://www.mirrorservice.org/sites/www.libpng.org/pub/png/spec/1.2/PNG-Chunks.html#C.tRNS
Было бы круто иметь возможность натравить IMGO на .css
и сжать в нём все найденные data:uri картинки :)
Более подробно о методике:
http://banzalik.ru/transparent-jpg/
конвертирование JPG -> PNG24
Display information about that image can be compressed better, if we make it over the few easy hand action.
Сегодня решил попробовать Imgo и полчаса искал, скачивал и устанавливал библиотеки. Хорошо адреса по которым их можно взять записаны в imgo.
Свои шаги я записал в понятной bash'у форме, их можно скачать на
http://pastebin.com/xtiQzKSe
http://dl.dropbox.com/u/12618538/build-imgo-toolchain.sh
буду рад если это сэкономит кому-то время.
Спасибо за imgo :)
добавить параметр, позволяющий показывать только одну строку, пример
Если изображение уже было сжато другими утилитами, то в некоторых случаях (часто) эффективность imgo ниже, чем могла бы быть. Надо научиться "разжимать" картинку до "простого" состояния, а потом уже обрабатывать.
Не забыть при этом про оригинал, очень удивиться тому, что не получилось сжать эффективней.
imgo -s -l test.png , где test.png это png24 с прозрачностью
Выводит мгновенный результат:
-----Start: вторник, 18 июня 2013 г. 15:45:35 (MSK)-----
File: banner-shop-img-temp.png
start separate
end separate
FILELISTS:
not found files
Result:
Processed: Сould not compress any of the 0 files
Total time: 00:00:00 (HH:MM:SS)
------End: вторник, 18 июня 2013 г. 15:45:35 (MSK)------
При этом никакие файлы не создаются.
Обычное сжатие работает нормально.
Ставил сегодня через homebrew, т.е. всё должно быть свежее.
Аналогичная проблема наблюдется как минимум у ещё одного человека.
Получилось найти картинку, для которой:
Вот сравнение и получившиеся картинки:
imgo .
— 152 558 байтimgo -b .
— 141 702 байтКажется, что для картинок, у которых точно не будет теряться битность по дефолту производить дополнительные оптимизации, ну и можно поисследовать почему в imageoptim результат чуть-чуть лучше чем даже опасный вариант с -b
Need compress mode for png (fast speed & small size) like site tinypng.
Например написать:
imgo loader-*
и он пройдется по всем файлам, которые начинаются на loader-
Проверка на наличие установленных утилит и их версий.
В случаи ошибки - показывать предупреждение.
Checking for installed utilities and their versions.
In case of error - show a warning.
Если в папке есть файл с пробелами в имени, например, test test.png
, то при попытке его сжать imgo ругается:
File not found: ./test
File not found: test.png
imgo такую информацию заливает черным цветом.
А может лучше каким-то существующим на картинке цветом?
Can you spend some time to help with installation and debug on linux debian?
I want to use it but can't by now.
And there is strange error:
...
end getfparam
cat: /tmp/imgopng14061558016101179588822/3155954172677433797685.png: Нет такого файла или каталога
getfparam
fparam -> 0
end getfparam
minsize
identify: improper image header `/tmp/imgopng14061558016101179588822/42331160325495264514751.png' @ error/png.c/ReadPNGImage/2957.
/home/qfox/bin/imgo: line 455: [: 154: ожидается использование унарного оператора
WIN: /tmp/imgopng14061558016101179588822/42331160325495264514751.png
/home/qfox/bin/imgo: line 469: 154 - : ошибка синтаксиса: ожидается операнд (error token is "- ")
FILELISTS:
Result:
Processed: п║ould not compress any of the 1 files
...
after which input file is empty.
Original: http://jetpackweb.com/blog/2010/02/24/optimize-your-pngs-with-optipng/
_man xargs_
-n number
Set the maximum number of arguments taken from standard input for each invocation
of utility. An invocation of utility will use less than number standard input
arguments if the number of bytes accumulated (see the -s option) exceeds the speci-
fied size or there are fewer than number arguments remaining for the last invoca-
tion of utility. The current default value for number is 5000.
-P maxprocs
Parallel mode: run at most maxprocs invocations of utility at once.
Example: find <folder> -iname '*.png' -print0 | xargs -n 1 -P 16 -0 optipng -o7
-n
= кол-во потоков приложения
-P
= кол-во файлов (аргументов), обрабатываемых одним потоком
Установил на Ubuntu 8.04.4 (hardy).
Ввожу команду:
imgo file.png
В консоль вываливается ошибка:
sed: invalid option -- E
...
При этом файл сжимается. После сообщения об ошибке есть вывод imgo:
file.png: 434 => 425, Saved: 9 bytes (2%)
---------------------------------------------------------
Result:
Processed: 1 files of 1, total size 434 bytes
Profit: 9 bytes (2%)
date: 1: Нет такого файла или каталога
Total time: (HH:MM:SS)
Пару предожений по выводу IMGO. При запуске программы без параметров можно увидеть следующее:
imgo 0.0.7: Advanced images optimizer
imgo -help show the extended help
Если немного расширить этот вывод, снабдив его краткой помощью в одну-две строки, будет гораздо более дружелюбнее к пользователю. А за подробной помощью как раз можно будет в "extended help".
Примерно так:
imgo 0.0.7: Advanced Images Optimizer
Usage: imgo [-params] [FILE]
Example: imgo . optimize all image files starting from current directory
Example: imgo -png -m . optimize all png images starting from current directory, using multipass mode
Use imgo -help to show the extended help.
Хочется или режим «loud» или по умолчанию, или по -emulate
получать информацию о том сколько вообще файлов обрабатывалось и сколько не удалось сжать. Сейчас нет никакого ответа и это чуть-чуть смущает (хочется понять увидел ли он все файлы, сколько их там и т.д.)
Возможность генерировать data:uri файла.
$ brew install exiftool imagemagick optipng libjpeg gifsicle
…
Error: jpeg-8d already installed
Unsatisfied dependency: XQuartz
Homebrew does not package XQuartz. Installers may be found at:
https://xquartz.macosforge.org
Error: An unsatisfied requirement failed this build.
Is it something critical? Why it's not mentioned in readme?
OS X 10.8, CLI utilities installed
imgo -s HTML5_dirty.png:
HTML5_dirty.png: Saparated: HTML5_dirty_imgcocmp_crop.png, HTML5_dirty_imgcocmp_crop.png, HTML5_dirty_imgcocmp_crop-nq8.png
imgcocmp заменить на imgo
Было бы круто уметь сказать imgo: «вот посмотри на этот .css (.html, …) и сожми все картинки с относительными урлами, которые ты там найдёшь».
I followed the instructions and then needed to homebrew install exiftool
too.
then on next run:
./imgo: line 42: identify: command not found
I'm on Snow Leopard. Is it missing the identify
tool?
Серые картинки бьются в IE6, или черный фон или становятся полностью прозрачные.
Hi. The issue is not actually about imgo, however I think it relates.
The described installation flow gets stuck on the step when brew tries to set up pngrewrite:
==> Downloading http://entropymine.com/jason/pngrewrite/pngrewrite-1.4.0.zip
Already downloaded: /Library/Caches/Homebrew/pngrewrite-1.4.0.zip
==> make
libpngrewrite.c:721: error: ‘struct pngrw_ctx’ has no member named ‘height’
libpngrewrite.c:722: error: ‘struct pngrw_ctx’ has no member named ‘width’
libpngrewrite.c:734: error: ‘struct pngrw_ctx’ has no member named ‘has_bKGD’
make: *** [libpngrewrite.o] Error 1
make: *** Waiting for unfinished jobs....
The manual installation falls with same errors.
Mac OS X version: 10.6.8
gcc: 4.2.1
подумать о сжатии для ретины.
http://retinafy.me/jpgs/
http://blog.netvlies.nl/design-interactie/retina-revolution/
==> Installing imgo dependency: pngcrush
==> Downloading http://downloads.sourceforge.net/project/pmt/pngcrush/1.7.47/pngcrush-1.7.47.tar.gz
curl: (22) The requested URL returned error: 404
Error: Download failed: http://downloads.sourceforge.net/project/pmt/pngcrush/1.7.47/pngcrush-1.7.47.tar.gz ```
В Unix принято короткие аргументы делать с одним минусом, а их полные версии — с двумя.
Имеет смысл везде заменить - на -- для полных аргументов, например, -brute на --brute, -quiet на --quiet и т.д.
При использовании -bkgd и -m результаты -e и реальные будут отличаться.
Хочется, чтобы imgo мог уметь понимать сжимал ли он какие-либо картинки или нет. Чтобы при добавлении новых или изменении старых он накидывался только на них, без траты времени на попытку сжать старые.
Есть несколько путей достижения этого:
imgo .
imgo будет долго работать.imgo .
(если не использовалось -m), нужно ли пережимать картинку если было применено imgo -b
и т.д., нужно ли попытаться сжать ещё раз картинки если поменялось что-то в imgo и зависимостях и т.д.Наверняка ещё варианты есть, но эти лежат на поверхности :)
/usr/local/bin/imgo: line 454: [: users: integer expression expected
/usr/local/bin/imgo: line 471: -1514*100/users: division by 0 (error token is "s"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.