gemini-testing / gemini-gui

GUI for gemini
MIT License
69 stars 18 forks source link

image-optimization #54

Closed DudaGod closed 8 years ago

DudaGod commented 8 years ago

/cc @j0tunn @eGavr @rostik404

j0tunn commented 8 years ago

В остальном :ok:

eGavr commented 8 years ago

А мы не хотим сделать эту фичу отключаемой?

ну типо... например, у одного нашего пользователя настроен webhook, который при коммите запускает полноценный ImageOptim.

мне кажется, что этот пользователь не захочет тратить время на оптимизацию, которую мы предоставляем из коробки (ну типо зачем им сжатие из коробки, когда они сжимают руками, но более качественно).

сс @j0tunn

SevInf commented 8 years ago

А мы не хотим сделать эту фичу отключаемой?

На правах пользвателя не из Я скажу, что хотелось бы чтобы фича была отключаемая и/или по кнопке, а еще лучше - плагином.

DudaGod commented 8 years ago

@SevInf плагины к gemini-gui не подключаются. Решили добавить опцию в cli, чтобы можно было отключить по желанию. По дефолту будет оптимизировать.

eGavr commented 8 years ago

@j0tunn @DudaGod

Не хочу показаться занудой, но мы так-то ломаем обратную совместимость, если по умолчанию будем оптимизировать картинки :(

SevInf commented 8 years ago

@DudaGod @j0tunn @eGavr В GUI это фича, если честно, как-то не к месту. GUI изначально задумывался как простой фронтенд к CLI без какой-либо дополнительной функциональности. Все, что возможно в GUI должно быть возможно сделать и без него.

Тут же получается, что если я пользуюсь gemini update и хочу оптимизацию — я иду отдыхать. Если у меня свой скрипт, который зовет gemini через API и я хочу оптимизацию — я опять иду отдыхать. Если я пользуюсь GUI и не хочу оптимизацию, мне надо не забыть постоянно добавлять флаг в CLI и следить чтобы все в моей команде о нем помнили.

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

Давайте сделаем так:

  1. Унесем updateReferenceImage в ядро, в публичное API (ну и сигнатуру поправим, текущая очень GUI-специфична).
  2. Заставим gui и gemini update использовать его.
  3. Будем в нем кидать событие afterImageUpdate
  4. Оптимизацию сделаем плагином.
j0tunn commented 8 years ago

@eGavr нет, не ломаем. На выходе то же изображение, сжимается оно без потери качества. Где тут обратная несовместимость?

j0tunn commented 8 years ago

@SevInf С updateReferenceImage возникнут сложности, т.к. у нас в gemini обновление изображения происходит в сабпроцессе, соответственно кидать оттуда событие мы не можем.

У меня есть альтернативное предложение: давайте просто в gemini-gui после обновления изображения кидать событие UPDATE_RESULT с {updated: true} (это новое событие вместо CAPTURE) через раннер - и все. А сжатие будет происходить в плагине на это событие.

SevInf commented 8 years ago

@j0tunn отлично, так вроде все проблемы решаются.

DudaGod commented 8 years ago

/cc @j0tunn @eGavr @sipayRT @tormozz48 @rostik404

j0tunn commented 8 years ago

/ok