Giter Site home page Giter Site logo

imgo's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

imgo's Issues

Статистика для режима -m

при использовании режима -m в статистика ничанет врать, т.к увеличивается число файлов и их размер, реальный профит выше, чем говорит imgo

Генерация спрайтов

Добавить возможность генерировать спрайты:

  • горизонтальные
  • вертикальные
  • в разных форматах png и jpg, по-умолчанию:png
  • с настаиваемым отступом между элементами спрайта
  • с выводом координат для имени файла и его новым background-position

Прогресс-бар

Подумать как можно сделать прогресс-бар для больших картинок, чтобы понимать на каком этапе находится

Обработка файлов только в заданной папке

Хочется получить возможность обработать все файлы в заданной папке, но не трогать файлы, раположенные в подпапках этой папки.

Скорее всего логичнее добавить какой-то отдельный параметр типа -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

конвертирование не анимированного GIF в PNG

Summary of saved bytes

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 :)

Оторвать рандомайзер

Имена временных файлов и папок генерируются рандомайзером, можно использовать встроенную функцию.

Сжатие data:uri в .css файлах

Было бы круто иметь возможность натравить IMGO на .css и сжать в нём все найденные data:uri картинки :)

JPG -> PNG

конвертирование JPG -> PNG24

Add intellect/wizard mode

Display information about that image can be compressed better, if we make it over the few easy hand action.

Установка окружения в Ubuntu

Сегодня решил попробовать Imgo и полчаса искал, скачивал и устанавливал библиотеки. Хорошо адреса по которым их можно взять записаны в imgo.
Свои шаги я записал в понятной bash'у форме, их можно скачать на
http://pastebin.com/xtiQzKSe
http://dl.dropbox.com/u/12618538/build-imgo-toolchain.sh

буду рад если это сэкономит кому-то время.
Спасибо за imgo :)

to raw png

Если изображение уже было сжато другими утилитами, то в некоторых случаях (часто) эффективность imgo ниже, чем могла бы быть. Надо научиться "разжимать" картинку до "простого" состояния, а потом уже обрабатывать.
Не забыть при этом про оригинал, очень удивиться тому, что не получилось сжать эффективней.

Не работают плюшки вроде imgo -s и imgo -png8a

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, т.е. всё должно быть свежее.

Аналогичная проблема наблюдется как минимум у ещё одного человека.

Неоптимальное сжатие большой pngшки

Получилось найти картинку, для которой:

  1. Кажется, что нет разницы при безопасном/опасном сжатии (не теряется битность, размер заметно уменьшается) (но я могу тут ошибаться).
  2. Оба варианта из imgo в результате весят больше, чем оптимизированная через imageoptim картинка.

Вот сравнение и получившиеся картинки:

Кажется, что для картинок, у которых точно не будет теряться битность по дефолту производить дополнительные оптимизации, ну и можно поисследовать почему в imageoptim результат чуть-чуть лучше чем даже опасный вариант с -b

Autodiagnosis

Проверка на наличие установленных утилит и их версий.
В случаи ошибки - показывать предупреждение.

Checking for installed utilities and their versions.
In case of error - show a warning.

installation on linux debian/ubuntu

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.

Многопоточность xargs

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 = кол-во файлов (аргументов), обрабатываемых одним потоком

sed: invalid option -- E

Установил на 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

Возможность генерировать data:uri файла.

“Unsatisfied dependency XQuartz” installation error

$ 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

installation on osx doesnt work

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?

Can't install pngrewrite on Mac OS X

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

Битая ссылка для pngcrush

==> 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 и т.д.

Ошибки в работе -e

При использовании -bkgd и -m результаты -e и реальные будут отличаться.

Оптимизация пакетного сжатия картинок

Хочется, чтобы imgo мог уметь понимать сжимал ли он какие-либо картинки или нет. Чтобы при добавлении новых или изменении старых он накидывался только на них, без траты времени на попытку сжать старые.

Есть несколько путей достижения этого:

  1. Использовать вотчер. Недостатки — надо держать его запущенным, при ручной попытке сжать всё через imgo . imgo будет долго работать.
  2. Хранить где-то (файл .imgo рядом с картинкой? где-то в директории с .imgo, по хешикам картинки?) информацию о том, что картинка была изменена, когда это было и какое преобразование применялось. Так можно будет понимать нужно ли сжимать картинку при очередном imgo . (если не использовалось -m), нужно ли пережимать картинку если было применено imgo -b и т.д., нужно ли попытаться сжать ещё раз картинки если поменялось что-то в imgo и зависимостях и т.д.

Наверняка ещё варианты есть, но эти лежат на поверхности :)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.