Анимированный ушифратор онлайн! Новая эра общения


Долго думал, куда запостить — в IT Pony или в аниматоры. Примерно одинаковое время потратил на то и на другое...
В моем прошлом посте мне предложили сделать анимированный ушифратор, что я собственно и сделал: ушифратор.рф
На данный момент сайт даёт две базовые функции — ушифрование сообщения с помощью 4 разных поняш, по 5 эмоций у каждой (20 мордочек), и дешифровка.
Если идея окажется удачной, то в ближайшем будущем я займусь следующими вещами:
  • Интеграция с Табуном:
  • Появится возможность написать моему боту в личку на Табуне, чтобы получить пароль для Ушифратора. Вы откроете возможность получать ачивки за деятальность на Табуне, и открывать за это доступ к уникальным поняшам и эффектам
  • Приватная шифровка — автоматически смогут расшифровать только те Табунчане, которых вы перечислите. Остальным придется потеть вручную...
  • Элитная шифровка — сообщение смогут расшифровать только те, у кого больше указанной вами кармы
  • Казуальная шифровка — при наведении мышки на ушифр сразу высветится расшифрока
Ну и самые очевидные вещи: Больше поняшек, больше эмоций, меньше веса файлов (на данный момент все файлы сжимаются с помощью apngopt и это занимает очень много времени) и так далее.

400 комментариев

Увидел в другом посте и думал, что за желтые волосья слева…


Понячий сурдопереводчик.
В итоге ты взял морской код?
Спойлер20
Аррр… цифры старый ушифратор не поддерживает. Тут написано «надо переименовать его в ушифр 2.0 чтобы не путать с оригинальной версией»
Словарь перевода я составлял по принципу «чем чаще встречается буква, тем мЕньшей длины ушифр».
Это почти бессмысленно… но блин, просто мило, когда поняшки ушками дёргают… :-))))))))))))))))))))
Треды которые мы заслужили…
Такая анимация у этих ушей, мде.
Прикольно!
Наверное знаешь, но английский текст выдаёт


Окей, давайте разбираться.
1) Сервер выдаёт внутреннюю ошибку при попытке зашифровать что-то кроме русской раскладки и некоторых (причём я так и не понял, почему именно этих) знаков препинания.
2) Всего ~40 символов доступно. Одно ухо, другое, оба, моргание. Четверичная система счисления. 4^3=64. Что мешало добавить все знаки препинания в оставшиеся места? При этом кодировка плавающей длины без перебивок (буква «я» это лево, лево, право, а буква «а» это вниз), так что расшифровать вручную можно, но зачем? 0201302 это 0,20,130,2 или 020,1,302 или 0,2,0,1,3,0,2? Сиди, занимайся брутфорсом или частотным анализом. Легко, но нудно.
3) Максимум можно написать 30 позиций. Последнее, очевидно, связано с тем, что автору было лень делать оптимизацию картинок переводом их в .gif с понижением кадровой частоты, и поэтому фигнюшка меньше 80*80 пикселей весит более полутора мегабайт.
4) Если автор сделает это:
Приватная шифровка — автоматически смогут расшифровать только те Табунчане, которых вы перечислите. Остальным придется потеть вручную…
Элитная шифровка — сообщение смогут расшифровать только те, у кого больше указанной вами кармы

То я выпущу свой дешифратор. Хотя, конечно, он может сделать хитро, и сначала шифровать нормальным шифром, и получившееся уже «ушифровывать», но знаете что? Я не знаю. Посмотрим — увидим.

А ещё у меня дежавю при прочтении своего комментария.
3) Максимум можно написать 30 позиций. Последнее, очевидно, связано с тем, что автору было лень делать оптимизацию картинок переводом их в .gif с понижением кадровой частоты, и поэтому фигнюшка меньше 80*80 пикселей весит более полутора мегабайт.

gif тоже хрень.
Sasha-Flyer надо срочно переходить на анимированный SVG пока табун не упал от ушкоспама.
gif тоже хрень.

А вот и нет, мне нужно это в дискорд!
А мне MP4 в телегу. Даёшь ушкоAPI!
Из SVG можно что угодно уже сделать.
Нужна готовая интеграция с табуном, дискордом, мэседжерами, вкашечкой и умным холодильником.
Спойлер

Тем не менее, это абсолютно не важно для меня, как для конечного пользователя. Пусть хоть в чём хранит, лишь бы мой трафик не жрал. Эти 28 сообщений здесь весят наверное больше, чем страница поиска по изображению Дерпибуры с 50 картинками. Да что уж там, я уверен, она весит не сильно меньше, чем весят все оригиналы этих самых 50 картинок.
ПОЛТОРА МЕГАБАЙТА! Это полноценный (и немаленький!) арт в .png без сжатия!
А Флаттершай в SVG которую я кинул выше весит 40кб.
Кстати this. При векторных исходниках экспортировать во что-то не векторное — такое себе
А ты попробуй сам любую анимацию из .fla исходника импортировать в .svg анимированный.
Что-то мне подсказывает, что между .fla и .apng точно больше одного шага, так что от пары дополнительных операций ты не умрешь.
Читай
Ты хоть сам то пробовал это сделать конкретно c теми .fla, которые слили? Попробуй так сделать хотябы с одной поняшей из .fla файла. Я уже перечитал первые 5 страниц гугла по запросам: «fla to svg», «swf to svg», «mov to svg» — всё это не рабочее. Даже если импортировать СТАТИЧНЫЙ вектор одного кадра — то у этого вектора будет столько точек, что ты его ни в одном редакторе нормально не откроешь, а даже если и откроешь — то там в принципе невозможно будет что-то уже редактировать, и я уже молчу об анимации.
Ты хоть сам то пробовал это сделать конкретно c теми .fla, которые слили?

Мне вот больше заняться нечем, чем выделять все единственные два свободные часа в будний день после работы, чтобы ковыряться в ненужных мне fla исходниках.
перечитал первые 5 страниц гугла по запросам: «fla to svg», «swf to svg», «mov to svg» — всё это не рабочее.

Каким же образом я спрайты из swf экспортил в svg через FFDec, понятия не имею.
Даже если импортировать СТАТИЧНЫЙ вектор одного кадра — то у этого вектора будет столько точек, что ты его ни в одном редакторе нормально не откроешь

Хмммммм
то там в принципе невозможно будет что-то уже редактировать, и я уже молчу об анимаци

Ниасилил же статью, ну. От тебя даже в редактор ничего пихать не требуется на выходе. Разве что написать штуку, которая будет впихивать в один файл все кадры.
ты показываешь сухие статьи но не показываешь конкретных примеров — не надо так, пожалуйста. Всё что ты скидывал — я перечитывал и ни раз. В той статье нет ни единого упоминания fla, swf, mov, adobe flash, adobe animate CC.
Спойлер — вот так выглядит стандартный svg экспорт из Хасбровских исходников. Когда я его пытаюсь перетащить в иллюстратор, он мгновенно перестает отвечать.
ты показываешь сухие статьи но не показываешь конкретных примеров — не надо так, пожалуйста.

>как минимум половина статьи — один большой пример
>статья без примеров

Не буду же я тебе скидывать эксперименты с лого программы, с которой я вожусь на работе, а?
В той статье нет ни единого упоминания fla, swf, mov, adobe flash, adobe animate CC

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

Значит иллюстратор говно.
Спойлер
хоть бы подлагнул чуток. Ты не видел реально тяжелые svg.
>как минимум половина статьи — один большой пример
>статья без примеров

Ни один пример из статьи не был импортирован из .fla исходника.
А хули ты хотел? Это статья про svg-анимацию, а не «Делаем из .fla svg»
Ну так для того, чтобы начать работать с svg анимацией, мне сначало нужно её:
1. получиь её из .fla
2. открыть её в любой программе, которая может создавать animated svg.
2. еще раз прочти статью и покажи мне место, где там требуется использовать редактор для создания анимированного svg.

Я не вижу смысла даже пытаться объяснять тебе что-то, пока ты не понял, как она вообще устроена. Как ты поймешь, отпадут вообще все вопросы
Всё что написано там — анимируется программно для самыйх простых линий. Там даже масок нет, ЛОЛ. А для поней маски обязательны.
Попытаюсь тебе объяснить еще раз — структура лица пони — очень сложный объект, в котором минимум сотни точек. И ты в любом случае не сможешь программно анимировать каждую эту точку или группу точек.
<animateMotion path=«M 0 0 c 3.4 -6.8 27.8 -54.2 56 -37.7 C 73.3 -27.5 89.6 -5.1 81.9 5.9 c -5.8 8.3 -24.7 8.7 -45.4 -0.4» .../>

Я прекрасно понимаю что делает этот код и как он работает. Но ты попросту заебешься делать это для КАЖДОЙ точки КАЖДОЙ пони пони. с помощью такого кода

trixiebooru.org/search?q=animated%2C+svg — всего ПЯТЬ animated + svg картинок за всю историю брони-сообщества, причем ни в одной из них в принципе нет мимики лица.
Там можно с легкостью просто переключать эти самые кадры. Делаешь всю мимику ушей отдельными файлами-кадрами, пишешь свою штуку, которая будет вшивать эти кадры ушей в один файл и прописывать код анимации. Никто не просит делать полноценный морфинг и контролировать каждую точку
Ты сейчас похоже вообще не понимаешь, что пишешь. Еще раз спрашиваю — ты сам это хоть раз делал?
Во-первых, animate CC может экспортировать только самый первый кадр сцены. Чтобы экспортировать другие кадры, нужно вручную удалять первый кадр и вручную заного экспортировать.
во-вторых Сейчас для каждой пони 211 уникальных кадров, для кадой эмоции. 211 Х 5 эмоций Х 4 пони = 4к+ кадров. И всё вручную. Причем в дальнейшем будет больше эмоций и больше пони. Ты реально предлагаешь мне на полном серьезе это делать?
Во-первых, animate CC может экспортировать только самый первый кадр сцены. Чтобы экспортировать другие кадры, нужно вручную удалять первый кадр и вручную заного экспортировать.

Делаешь анимированный swf — берешь FFDec — экспортируешь все svg-кадры скопом (он умеет).
Опиши мне свой техпроцесс для apng
Опиши мне свой техпроцесс для apng

Пока что я не видел ни одного человека, кто делал это так же, как я. Я написал свой собственный скрипт на Питоне, который делает это.
Опиши мне свой техпроцесс для apng
Не надо апнг, он не поддерживается мобильными браузерами
webP тоже не поддерживается на iOS
Потому я и говорю, что GIF самый совместимый без вопросов :P
svg вроде как тоже везде совместим, не?
На мобильнике не пашет, ровно как и апнг, андроид 4 какой то там. Ровно как и не грузит эту страницу
caniuse.com/#search=animate%20svg — странно. вроде как только IE не поддерживает. И да, не грузит он только потому, что тут много тяжелых апнг. Сейчас я перейду на svg, и всё станет ОК — все файлы будут весить от 100 до 200кб и будут хешироваться. Так что начиная со следующей версии не буедт никаких проблем с трафиком и оперативкой.
Сейчас специально достал свой старый тел c Lineage OS 11 (андроид 4.4.4). В Firefox работает и всё. Во встроенном только svg и webp.
apng
svg
webp
Но андроид 4 уже довольно таки старый, на 7 пашет всё и везде.
Только вот учитывайте плиз тот факт, что apng и webp будут увеличиваться в размере в зависимости от текста (в два раза больше текста — в два раза больше размер файла), а вот svg не увеличится.
Да понятное дело, мы про совместимость с мобилками сейчас.
т.е. я хотел написать не пашет, а машут.
Спойлер
def test():
    for k in range(1000, 1001):
        frames = []
        webp_frames = []
        s = " -d 41 -m 4 -q 85 -lossy -min_size"
        for i in range(1, len(listdir("{0}".format(k)))+1):

            frames.append("{1}\q{0:04d}.png".format(i, k))
            webp_frames.append(Image.open("{1}\q{0:04d}.png".format(i, k)))
            s = s + " {1}\q{0:04d}.png".format(i, k)
        name = str(k) + ".png"
        wname = str(k) + "PYTHON.webp"
        wwname = str(k) + "GOOGLE.webp"
        subprocess.call('{0}{1} -o {2}'.format(libwebp, s, wwname))
        APNG.from_files(frames, delay=41, delay_den=1000).save("{0}".format(name))
        path = "C:/Users/User/Downloads/apngopt-1.4-bin-win32/apngopt.exe -i15"
        name = "1000_opt.png"
        webp_frames[0].save(
            wname,
            format="WEBP",
            lossless=False,
            quality=85,
            save_all=True,
            append_images=webp_frames[1:],
            duration=41,
        )
C:/Users
ААААААААААААААААААААААААААААААААААААААААААААААААААААА
Давай я порпобую объяснить тебе еще раз.
ВОТ ЭТО:
не равно
ВОТ ЭТОМУ
да, принцип движения и изменения точек будет одинаковым. Но это никто не будет делать.
И можно тебе еще один такой вопрос, раз ты в этом шаришь — вот допустим я все-таки анимирую svg точно даже, как сейчас выглядят анимированные png. И вот ты откроешь одновременно APNG и ASVG с одинаковой анимацей. Да, очевидно, что ASVG будет весить на несколько порядков меньше. НО: кто тебе двигает точки в svg файле? Правильно — твой процессор. А что процессор делает для отображения APNG? Ничего!
А теперь вопрос на засыпку:
Что первее помрет от истощения: Оперативная/видеопамять от 1000 АПНГ картинок, или процессор от 1000 SVG картинок?
Что первее помрет от истощения: Оперативная/видеопамять от 1000 АПНГ картинок, или процессор от 1000 SVG картинок?

Мне кажется, одинаково хреново будет обоим. Только при необходимости можно пропускать кадры SVG-картинок.
Если бы SVG были типичными примерами-линиями, как в том примере что ты скинул — да, обоим одинакого. Но тут будут сотни точек, которые процессору нужно будет каждый фрейм двигать и заного рендерить это. Процессору будет ГОРАЗДО больнее.
Окей, почему тебя это напрягает?
Зачем так сильно парится? Ради того, чтобы ваши процессоры сгорели к хренам? Программировать процедурно генерируемое ASVG гораздо сложнее, чем APNG, и при этом от ASVG ваши ПК, смартфоны и планшеты начнуть лагать из-за занятости процессора гораздо быстрее, чем от APNG из-за нехватки оперативной/видеопамяти.
TL:DR: ты предлагаешь мне очень сильно запариться ради того, чтобы ваши компы начали лагать еще быстрее.
Все это началось с того, что эти твои APNG настолько сильно раздувают размер страницы, что без многомегабитного безлимита этот тред лучше вообще не открывать
Если бы вместо всех этих APNG картинок были бы ASVG, то эти самые мобильныки бы принудительно закрывали браузеры из-за больших требований к процессору.
обильныки бы принудительно закрывали браузеры из-за больших требований к процессору

Ты реально такой дебич или притворяешься?
Если APNG вывалятся за пределы оперативки, то процесс браузера просто прибьется, ибо нехер столько жрать.
Если SVG вдруг начнут жрать слишком много, то… браузер просто пропустит пару кадров и будет делать вид, что ничего не происходит.
Если SVG вдруг начнут жрать слишком много, то… браузер просто пропустит пару кадров и будет делать вид, что ничего не происходит.
Или загрузит на 101% процессор и повесит браузер, и придётся пару минут ждать, чтобы страница хоть немного отвисла. Если вообще отвиснет без экстренного закрытия. Знаем, проходили.
Ты не путай синхронный JS, который в случае кривых рук вешает весь поток, и браузер ничего не может с этим поделать, и анимированный SVG, на сколько сильно запариваться отрисовкой которого решает сам браузер.
А ты уверен что все браузеры не будут забирать мощности процессора у жизненно важных программ? Плюс у некоторых особо умных юзеров может стоять принудительный приоритет для браузера. так что твой аргумент не в счет.
Ага. У меня, например, постоянно висит запущенным Procexx Explorer, в котором можно любой программе выставить любой приоритет от 4 (IDLE) до 24 (Realtime), плюс, если не ошибаюсь, можно отдельным программам прописать автоматическое выставление приоритета при запуске. Вот выставит какой-нибудь криворукий умник автоматический приоритет 13 (High) или и вовсе 24 (Realtime), и страница с парой сотен svg с радостью повесит браузер, а тот парализует систему.
Это, конечно, я немного утрирую, но сценарий вполне себе вероятный.
Если тебе даны силы что-то сделать, то как-то надо понимать, что за этим идет ответственность. Если криворукий умник выставит хоть чему-то RealTime, и у него все сдохнет, то это вина исключительно криворукого умника. А то так можно и собственноручное удаление system32 оправдать.
Ну тык я не хочу провоцировать такие последствия. От переполненной оперативки винда не умрет, а просто перенесет часть оперативки в кеш. А вот от переполненного процессора могут быть большие неприятности вплоть до потери данных, если особенно если юзер что-то копировал/вырезал в данный момент
Ты настолько потрясающе не шаришь за матчасть, что я даже не знаю. «Переполненного процессора». Блин, серьезно, проходили это уже, не шаришь — ну не неси ты херню, Селестии ради
От переполненной оперативки винда не умрет, а просто перенесет часть оперативки в кеш.
lolwut?
Кэш ващет как раз и находится в памяти, и флушится на диск, если памяти недостаёт. А то, про что ты говоришь — это своп, и у большинства сейчас он отключен, потому что в целом почти нисколько не помогает при нехватке памяти, а только начинает тормозить систему ещё тогда, когда использование памяти куда ниже 50%.
Кароче, я правильно понимаю, что лучше юзать SVG, у которого в 100 раз меньше вес и потребление оперативки, чем APNG/GIF?
На самом деле, скорее, при разумном количестве svg/gif/apng на странице (то есть не как на упячке) что угодно будет нормально. При не очень разумном — надо смотреть. В идеале мне нужны три странички с условно дохрена svg, столько же таких же gif и столько же таких же apng, и тогда я могу чекнуть скорость, потребление памяти и загрузку проца.
В следующем топике в комментах всё это есть.
Ну там только SVG и не SVG (не знаю, что, в код страницы не смотрел).
Вообще, емнип, это зависит от реализации библиотеки. Она может и просто генерировать поток отрендеренных картинок с заданным фреймрейтом и не иметь средств управления рендером конкретного кадра. Надо смотреть исходники rsvg, чтобы точно об этом знать, как это всё реализуется.

Да, одно из главных правил использования сторонних API:
Если существует очевидная эффективная и не менее очевидная неэффективная реализация какой-нибудь операции, то в подавляющем большинстве случаев операция будет использовать именно неэффективную реализацию.
Если SVG вдруг начнут жрать слишком много, то… браузер просто пропустит пару кадров и будет делать вид, что ничего не происходит.

И кроме как отрисовывать кадры с пониженным ФПСом процессор больше ничем не сможет заниматься, а отсюда как следствие: инпут лаги в лучшем случае и полный отказ операционной системы в худшем.
Го пруфы
Сейчас будет тебе пруф, подожди 10 мин, не уходи никуда.
Хотел заспамить на своей страничке кучу svg, но чет они не проигрываются, хотя они анимированные. Придется дальше изучать как это вставить к себе на страничку ушифратор.рф/пруф
АААААА, прямо горит.
32-ядерный сервер, угадайте, сколько ядер жрёт лисица?
ПРАВИЛЬНО, ОДНО!
Хотя казалось бы, ну уж рендер-то можно в отдельные потоки побросать.
1-2 FPS на 1300 МГц (память, что характерно, не занята от слова совсем, 300 мегов — мелочь).

Я голосую за максимально жестокую казнь для тех, кто в 2019 пишет однопоточные программы.
ПРАВИЛЬНО, ОДНО!

ну, таки все браузеры однопоточные, просто некоторые (хром) научились делать потоки хотя бы под каждую вкладку.
Ну вот да. Лисица, к слову, тоже умеет (более того, плодит чайлды как не в себя), но отнюдь не тогда, когда надо перераспределить нагрузку. Казалось бы: есть у тебя воркеры для страницы (анимация, динамический css, видео, звук, и т.п.), чё бы их в отдельный поток не засунуть, и увеличивать их количество, когда у тебя этот поток ожидании почти не стоит? Почему, блин, на GPU не стесняются одинаковую работу раскидывать по тысячам потоков, а тут — нет блин, исключительно в один поток? Почему у меня в простейшей проге на баше, которая опрашивает аппаратуру, сверяет значения с конфигом (автоматически обновляя данные при ловле изменения конфига через inotify) и мигает светодиодом на панели сервера в зависимости от типа аварии, аж четыре процесса (разделённые по функциональному назначению и синхронизирующиеся друг с другом через сигналы, причём каждый из них независимо от остальных можно прибить и перезапустить при необходимости, я прямо пищу от такой гибкости — а теперь попробуйте кильнуть один из процессов какого-нибудь апача и посмотреть, как он весь валится, аки карточный домик?), а сложнейший фаерфокс всё делает в одном потоке, м?

Недавно прочитал книжку про Vulkan (как раз про то, как надо писать шейдерную обработку для GPU под такой API), и очень порадовался тому, что разработчики этого API пытаются поменять психологию программистов с «программа — это линейный поток инструкций» на «программа — это неупорядоченный набор коротких примитивов обработки данных, запускающихся ровно тогда, когда данные для конкретного примитива доступны» (забавно, что если доступно много данных для одного примитива, то они не становятся в очередь, а выполняются на независимых экземплярах примитива). Умение в такую модель критически важно для программирования для GPU (когда широченная шина к памяти, да ещё и портов у памяти куча, а вычислительных ядер тысячи), и не менее интересно было бы для программирования для современных многоядерных CPU. Но пока что на фронте CPU в этом отношении глухо, и очень жаль =/ Надеюсь, когда-нибудь, в прекрасном firefox-е будущего, такое будет реализовано, а сейчас пока приходится плакать, колоться, но продолжать жрать кактус.
(Алсо, вот примерно так выглядит схемка той проги, про которую я говорил)
Может я чего-то не понимаю, но у меня загружает примерно на 25%(если рассматривать пруф3). это явно больше одного при общей сумме в 6 ядер. Как так? Лиса 71b9
Зависит от того, что ты смотришь (25% — может быть общая загрузка, или, например, загрузка основным потоком + каким-то ещё, и т.п.)
Чет нихрена не поддерживает мой Фласк этот АСВГ.
Нешарятор
stasyan.ga/proof
10К svgшек на телефоне заставил отрисоваться — ну, анимация лагает. Все остальное нет.
Ну так зачем нам такая лагающая анимация?
Она весит (барабанная дробь) в 100 с лишним раз меньше, чем гифка (а если натравить gzip, будет в несколько сотен раз меньше).
Попробую сейчас не инлайново вставлять.
Как я и предполагал, если все это богатство не находится в глобальном DOM, то все работает гораздо быстрее, и особых различий в скорости с gif нету
Да, заметно как svg-шки начинают тормозить. (настольный пека i5 4670, 8 гб памяти, без видюхи, хром, винда)
Они ж одинаковые, ты разных нагенерируй, умник :P Рендеринг одинаковых браузер запросто дедуплицировать может.
Где я тебе возьму столько гифок и свгшок разных анимированных :<
забей, svg уже готов. посмотри вниз поста)
Дак я ж не взять говорю, а нагенерировать. +0.01 там, -0.05 сям — уже разные кривули будут.
Для svg без разницы, их растр браузер точно не кэширует. У гифок может быть разница
Забавно, но на этом тестике, что на SVG, что на не SVG, уже подтормаживает ssh-туннель. Лисица даже на сотню не забивает один проц. Надо будет на DISPLAY=:0 запустить почекать, как на работу приду (если не забуду). Зато не 1 FPS, а где-то 5-6 (надо бы счётчик слепить, хм?)
Прочекал на локальном X-сервере.
Не SVG, около 20 FPS, 600 МБ, загрузка около 75%SVG, около 4-5 FPS, 300 МБ, загрузка 100%
Ради того, чтобы ваши процессоры сгорели к хренам?
Алё, мы в 2019, когда даже Эльбрус умеет (наконец) в троттлинг, а современные интелы и АМД — ещё и в управление своим питанием. Сжечь современный процессор на адекватно работающей материнке, запитанной от адекватного БП — надо очень сильно постараться.
и заного рендерить это
wat
Зато он рендерит постепенно, кадр за кадром, а APNG распаковывает сразу. Во втором случае нагрузка куда больше, думаю.
А что процессор делает для отображения APNG? Ничего!
excuse me what

Процессор как бы должен распаковывать apng. Ты же не без сжатия его юзаешь?
Inskape? В нем можно анимировать?
inkscape.org/ru/learn/animation/
Inkscape does not support animation natively, although it might someday, if any individual programmer, or small team becomes interested in tackling the challenge.
Мне вот больше заняться нечем, чем выделять все единственные два свободные часа в будний день после работы, чтобы ковыряться в ненужных мне fla исходниках.

Ну вот ты же сейчас со мной общаешься. Открыть любой .fla файл — пару секунд. Файл -> параметры публикации -> SVG -> опубликовать — не более минуты.
Стесняюсь спросить, куда мне сохранять сраные 40 гигов сливов и откуда мне качать чертов флэш.
А зачем все 40 гигов, если можно пару файлов выцепить?
Неужто наконец-то распотрошили архивы?
Упс, ну тогда нет :3
Да, кстать, SVG это сила
А если на сервере включено сжатие то реально передается около 12кб.
Ты чем-то странным сжал, что число кадров стало втрое больше.

591кб, найди отличия, как говорится. это все еще дофига
Если перейти на непрозрачный фон, можно экономию будет исчислять десятками раз, сейчас, видимо, используется любопытное неочевидное свойство наиболее распространенных (но далеко не всех) рендеров перетирать только те области, которые занимает каждый кадр. С непрозрачным фоном можно будет переписывать только реально отличающиеся части, а это одни уши.
Только вот шифр не распознаёт
Слишком пиксельно потому что.
Именно, сжатие gif-ом в три раза полностью похерило сглаживание. Может, для тех, кому жаль траффик, это и пойдёт, но лично мне куда приятнее глядеть на красивую сглаженную анимацию, а не это плохо оптимизированное пиксельное нечто.
В принципе, это идея — если не выйдет в этот ваш svg перевести ушифр, чтобы при этом его понимали все браузеры, то прикрутить к скрипту Ушифра возможность в настройках выбора качества картинки (gif или apng) и, соответственно, при загрузке страницы Ушифр будет парсить ссылки на ушифр-картинку и подменять ссылку на низкокачественную гифку. Но как по мне, это гемор.
Вообще-то, APNG почти наверняка можно примерно так же соптимизировать, если перекочевать в индексированную палитру (при наличии прямых рук можно даже полупрозрачность не похерить)
У поней дофига градиентов, особенно в зрачках. Если бы там было до 50 цветов — то да, можно было бы.
До 256 цветов можно задать. В гифке 24, включая прозрачный.
Разве apngopt не делает то, что ты сейчас описал?
Не делает
Если это такой выгодный сжиматор веса (индексированная палитра), то почему им никто не пользуется?
Ты типа предлагаешь для каждой поняши завести список инт-чисел, показывающих какие цвета для неё использовать, и при рендере разрешать использовать только эти цвета? И как это поможет уменьшить объем, если все эти цвета в любом случае используются?
почему им никто не пользуется?

Никто не в курсе об этом
И как это поможет уменьшить объем, если все эти цвета в любом случае используются?

4 байта на цвет -> 1 байт на цвет
Не забывай про 1 байт, который по-умолчанию отведен под уровень прозрачности. RGBA же.
4 байта на цвет
Так сейчас там и так 4 байта.
Сейчас посмотрю что можно будет сделать с этим в Питоне. Надеюсь, Pillow это поддерживает.
>> никто не пользуется?

Сие есть неправда. Я время от времени пользуюсь pngquant. Оч качественно сокращает число цветов до 256 или менее… имеет траблы с градиентами, да-с. У него есть форк Posterizer для большего числа цветов… я его как-то тыкал, веса сохраняет не особо много.
но лично мне куда приятнее глядеть на красивую сглаженную анимацию, а не это плохо оптимизированное пиксельное нечто
А если пиксель-артные анимации сделать?
Не путай пиксель-арт (изначально рисуемый в таком стиле (у меня, кстати, штук 30 или 40 игр в Стиме — пиксель-артные, вроде Enter the Gungeon и Dead cells) и низкокачественный пережатый до появления лесенки gif.
Я не путаю — я предлагаю.
Нет там никакого распознавания, Фраер читер — тупо сохраняет в базе ссылки на картинки и соответствующий им текст.
Чего??? Нет!
Тогда почему даже ссылки на неизменённые перезаливы картинок не распознаются?
Потому что стоит защита от перезаливок и подделок! Там есть скрытый код, который исчезает после перезаливки. Мой сервер не будет дешифровывать фреймы, если они были сделаны не через мой сайт.
Что ты несёшь, поехавшеё? Файлы те же байт в байт. Ты можешь феечкам так нагло врать, но не айтишникам же. Не позорься, ты и так уже под шконарём безвозвратно.
Кстати этим даже объясняется, как он собрался эту самую интеграцию пилить.
Но ведь шифр то рабочий в любом случае. Можешь сам посмотреть какие буквы что значат, и потом совместить их. Словарь шифрования у меня всегда одинаковый
Хоть бы в метаданных сохранял
Не забывай про тот факт, что все эти картинки — уже сжатые в полтора-два раза с помощью apngopt.
на анимированный SVG пока табун не упал от ушкоспама

.fla невозможно импортировать в анимированный svg. Есть один скрипт 2015 года, который нифига не работает.
Вот что-то поновее (не проверял) exchange.adobe.com/creativecloud.details.7232.animated-svg-exporter.html
С помощью какой программы ты сделал это? И какие аддоны?
Да это первый попавшийся онлайн svg аниматор — svgator.com
Ну это просто пруф оф концепт, для твоих целей он не подойдет.
Вижу у тебя ниже получилось сжать apng до сотен кб, это уже вполне приемлемо.

У SVG как и у всего есть свои плюсы и минусы. Можно сделать более плавную анимацию и интерактив.
Но они действительно могут сильнее нагружать CPU. У меня ноут даже подвывать начинает когда эта Флатти на экране. Всё же рендеринг на стороне клиента не есть хорошо.
Такое даже на Табун нельзя напрямую загрузить… что за издевательство.
Один из минусов SVG — нужен свой хостинг, который будет его отдавать. А плюс в том, что можно генерировать на лету.
Ухи.)
Ня!
А ну ушками давай някай!
Вья!
Ушами!
Повторяй за мной
Дай догадаюсь без дешифровки: здесь написано «А я просто маленькая пони».
Странно, я ошибся. Хотя, в принципе, смысл был верный…

В три раза!

Отличная задумка

По мне, очень забавно. Главное, чтобы не заменили им ВСЁ общение, бегать и расшифровывать каждый смайл не буду, и не использовали для зашифрованных оскорительных посланий.
Русский инглишу не помеха.
Кстати, Александр. По-моему, это непорядок, что у Флатти правое ушко прозрачное. Можно ли это как-то пофиксить?
Фича чтобы видеть второе ухо же. Хотя проще было отодвинуть прядку показав большую часть уха
проще было отодвинуть прядку
Если Фраер художником быше, но нет.
Прелесть. ^_^
Совсем тебе делать нечего.
Ну всё, теперь Роскомнадзор точно нас прикроет.
Тупо же, куча гифок, тормозящий мобильник/планшет, все по стремному шевелят ушам и как это расифровывать?
— Копируешь адрес картинки в окно ушкодешифратора и получаешь фразу из 30 букв.
Можно не копировать, а просто перетащить. У телефонов и планшетов тоже есть dran-n-drop.
Нинужная мышевозня же.
Прикинь на моем нет ни на мобильнике, ни на планшете
Может, плохо ищешь?
Андроид 4 и 5 не поддерживают
Дык это не от браузера разве зависит?
Как я говорил в предыдущем посте — неплохо, но АНИМАЦИЯ ПОКА ЧТО КОРЯВАЯ.
Флайер, тебе надо срочно договориться с художником, умеющим в вектор, кто может нарисовать ещё несколько позиций ушей — в частности, уши под углом в 45 градусов, а также сделать более явное покачивание и круг ушами из стороны в сторону (там тоже ещё пару кадров надо бы дорисовать). Да и уже имеющиеся позиции поправить, чтобы выглядело более аккуратно, а то у тебя когда ухо вбок, оно почему-то начинает расти из макушки, а не из положенного ему места, при этом нижняя часть вверх сдвигается. Вон, посмотри на оригинальные картинки ушифра.
В общем, как я уже сказал, выглядит очень неплохо, но тебе очень нужна помощь художника, кто доработает кривые кадры, раз уж ты говоришь, что не можешь в рисование. Я бы и сам радостью помог, но, увы, в этом плане такой же, как и ты — что-то кривенькое и простенькое могу сделать в растре, нов в векторе вообще ни в зуб ногой, и в чём и как там рисовать понятия не имею.
Если бы тут были художники, умеющие в asvg — я бы их уже нашел. Но пока-что я не видел ни одного годного арта в asvg. Я ещё поищу советы в интернете, как можно перевести .fla или .swf в .asvg, но предыдущие попытки были тщетными.
Попробуй запостить примеры ушкошифра на DeviantArt со ссылкой на сайт-ушкошифр и там же сделай объявление, что тебе нужен художник, который умеет в вектор и/или в asvg, чтобы сделать полноценный и красиво сглаженный анимированный ушкошифр. Главное, чтобы твой шифр полностью поддерживал кириллицу/латиницу, цифры и основные знаки препинания, тогда, думаю, вполне найдутся люди и на том же Диване, которым захочется такой фишкой попользоваться, а уж пара-тройка художников найтись обязана. Для привлечения внимания можешь даже пооставлять ушкошифром комментарии к новым работам известных художников по MLP (вроде того же Yakovlev-Vad, MysticAlpha, Underpable и т.д.), уверен, сразу начнут спрашивать, где ты такие интересные гифки нашёл, как раз и будешь отвечать, что сделал и что тебе нужна небольшая помощь в доработке.
Телефон включи, пожалуйста.
Телефон выключи, пожалуйста.
А как же негласное правило сериала, по которому у поней(из любого положения) видно только одно ухо?
Я тебе даже больше скажу — у той же Флаттершай в исходниках вообще в принципе нет уха в большинстве сцен. Т.е. уха второго нет как объекта.

Нам нужен частный детектив чтоб расследовать пропажу уха.
нужен чаестный детектив
Исправил ошибку. Не благодари. XDD
Флуер, выложи разбивку знаков и букав по ушиным жестам?
Хочется научиться читать эти гифки без деушифратора.
Сделаю в следующем посте. Сейчас еще много чего надо сделать. Возможно к воскресенью удастся успеть сделать.
Спасибо!
Сам понимаешь, никто тебя не торопит. Просто было б клево.
Единственное на чем я могу сейчас сфокусироваться — это на webP — в два раза меньше размер файла. Более удачных альтернатив пока что нет.
Смотри, промежуточный вариант (т.н. альфа-версия) у тебя уже есть, на то, чтобы её пощупать и поиграться, ну и чтобы привлечь художников с того же Дивана, этого вполне хватит.
Сейчас я бы посоветовал в первую очередь сосредоточиться на допиливании анимации и добавлении персонажей, ну и поиске нужного художника/ов. Несколько дней метаний между форматами особой погоды не сделают, зато уже когда будет полностью готова база, останется её либо перевести в нужный формат, либо попросить наших скриптописцев, чтобы они прикрутили через плагин/скрипт нужную для проигрывания анимации (той же asvg) библиотеку, которую будет подгружать браузер (если такой в нём не встроено изначально).
>> apngopt
Pingo умеет в оптимизацию apng и шустрый.


>> webP
Умеет в сжатие с потерями с сохранением прозрачности.


>> http://ушифратор.рф/
Не зашифровано. Кто угодно может читать и менять трафик.
Не зашифровано. Кто угодно может читать и менять трафик.

reg.ru обещал дать мне ssl, но в итоге письмо не пришло.
>> apngopt
Pingo умеет в оптимизацию apng и шустрый.

всё что кодирует мой сайт — проходит через apngobt.
>> webP
Умеет в сжатие с потерями с сохранением прозрачности.

с webp я уже сейчас работаю — удалось сжать с 1.4мб до 400кб. В следующей версии перейду на него
reg.ru обещал дать мне ssl, но в итоге письмо не пришло.
Придет. Жди. Эти фри ssl провайдеры по нескольку дней тупят.
— оригинал файла. Мой сайт НЕ скидывает оригиналы.
— файл, прошедший через apngot — в таком виде сайт и выдает шифры сейчас
— webP, созданный при помощи Питононовского Pillow
— webP, созданный при помощи Гугловского libwebp
Качество и размер файлов может сравнить сам. У WebP два недостатка — Питон отказывается его загружать к себе на сервер (придется хостить у себя их), а так-же webP не поддерживается на iOS устройствах.
Табун отказывается его загружать к себе на сервер*
срок редактирования истёк(
Ни на планшете, ни на мобильнике прочесть это не представляется возможнымСпойлер

Почему ты не можешь загружать картинку по урл и дешифровать ее?
Эти картинки в любом случае нельзя дешифровать. Я их не через сайт делал. Я сейчас тестирую новый способ сжатия, чтобы в два раза сэкономить объем шифра.
Ты не понял, драг и дроп-для пк, с мобильника или планшета я не могу с одной вкладки на другую перетащить, почему у тебя работает драг и дроп но не работает расшифровка по ссылке картинки?
Ниже предложил компромиссный вариант
Ты меня не понял. Если ты вставишь ссылку на картинку, мой сайт даст тебе расшифроку. cdn.everypony.ru/storage/02/06/64/2019/11/09/cbf333673f.png — в этой картинке НЕТ никакого шифра. ПОэтому расшифроку он тебе не даст.
Попробуй расшифровать это cdn.everypony.ru/storage/02/06/64/2019/11/08/58ef8e38c8.png или это cdn.everypony.ru/storage/02/06/64/2019/11/08/f952518d5a.png или любую другую картинку, которую скидывал не я.
Пощади владельцев мобильных устройств, сделай каждую картинку ссылкой чтобы по тычку открывала страницу с пхп скриптом который просто пишет текст сообщения и одновременно добавь тайтл, чтобы всплывал по наведению мыши-это чтобы не ебать мозг владельцам пк. Учитывая что не у всех хорошие планшеты и мобильники, это сэкономит массу времени
Мя про оптимизацию apng не в том смысле что её нет. А в том смысле что с pingo она может быть быстрее и/или эффективнее.
Для просто png pingo это лучшее сбалансированное решение — я не так давно много копал на тему.
Мне сейчас подсказали сделать фиксированную цветовую палитру для каждой пони. что скажешь на этот счет?
Скажу что хорошая идея, можно попробовать. =)

Чем (высококачественным) можно потыкать написал выше. Токо осторожнее с градиентами, не съешь их. ^^'
Нет, делать это софтом — очень затратно. Нужно самому сделать список из набора цветов, которыми моя прога будет собирать картинки. А твой вариант каждую картинку еще анализировать будет и смотртеть какие цвета оставлять в индексированной палитре — ну нафиг!
Ты вот собираешь apng из png. Причём из заранее заданых. Одно png там ухо влево, другое вправо.
Достаточно квантовать эти самые исходные картинки, из которых всё собирается.

Также упомяну что у pngquant есть настройка скорости.
Скорость 10 (относительно по-умолчанию) на 5% хуже и в 8 раз быстрее.

Ну, и оффтопик. Если когда-либо захочешь гифку максимального качества, то gifski твой друг.
Это pngquant на стероидах интерполяции во времени. Warning! Медленный и выдаёт большой вес.
Достаточно квантовать эти самые исходные картинки, из которых всё собирается.
Вот это хорошая идея. сейчас попробую. Только будет ли полученный apng с такой же цветовой палитрой, как и все png?
Та по идее будет порядок. Ибо по сути своей apng это склейка из png.
вот так выглядят сжатые с помощью pngquant ПНГшки по отдельности:
Спойлер

а вот так они выглядят в апнг: cdn.everypony.ru/storage/02/06/64/2019/11/09/1b27b2fa48.png
особо чувствительным просьба не открывать ссылку.
судя по всему, апнг не терпит кастомной цветовой палитры.
Странно. о_о

Может программа сборки не терпит. Попробуй собрать чем-нибудь другим?
Ещё можно преобразовать картинки в 32 битные… так и палитры не будет, и цветов мало.
Что-нибудь другое возращает ему исходную глубину цвета, и итогавая АПНГ весит ровно столько же, сколько если бы она собиралась без pngquant
Опять странно. Ибо когда-то тыкал на тему просто png… меньше цветов давало меньше веса.
Даже если глубина цвета та же. Собственно, экономия от Posterizer на этом и основана.
Я тебе даже больше скажу — другие программы увеличивают размер сжатых картинок. Сейчас скину тебе два архива — с исходными картинками, и с сжатыми. Посмотрим что ты сможешь с ними сделать
dropmefiles.com/je3RB — исходные файлы
dropmefiles.com/OHpp6 — сжатые более чем в 3 раза файлы.
Попробуй из вторых файлов получить такой АПНГ, который весит меньше, чем в первом. (при одинаковых услорвиях сжатия, естественно)
Используя APNG Assembler, из исходных файлов получается размер 400КБ, а у сжатых в 3 раза файлов с точно таким же методом компресса получается 545 КБ.
то есть:
Из 1.5 МБ фреймов получается анимация 400 КБ
Из 400 КБ фреймов получается анимация 545 КБ
Да верю я тебе. Просто нахожу это очень-очень странным. Ибо меньше цветов это меньше информации.
Видимо, при упаковке уже сжатых файлов apng занимается хернёй и сначала разжимает картинки, потом заново пережимает, только с худшими настройками сжатия.
Тут тонкость одна должна соблюдаться, палитра должна быть абсолютно идентичная для всех кадров. Я не уверен, что кроме ручной обработки каждого кадра в гимпе что-то еще может выдать кадры в единой палитре.
Флайер внизу темы предложил ещё один вариант. По идее, он может сработать.
Высока вероятность, что редакторы перекроют палитру на свое усмотрение
какие редакторы? Все 4 шага я буду делать в питоне в одной и той же библиотеке.
А ты гарантируешь, что твоя библиотека не перекроит палитру на свое усмотрение? В данном контексте, она не отличается от редактора.
вот такие вот последствия сведения в APNG картинок, пройденных через pngquant
[apng @ 0x55814909a880] Input contains more than one unique palette. APNG does not support multiple palettes.

Мне ffmpeg вот что сказало. Так что apng не поддерживает более одной палитры, да-с.
GIF поддерживает, а APNG нет… прогресс.
То есть придется сделать одну кастомную палитру для всех фреймов? Этот твой pngquant так не умеет чтоль?
Не знаю. Даже когда тыкал Color quantizer, не забредал в дебри палитры как отдельной сущности.
В общем если в кратце — ты посоветовал херню, а я повелся.
Если вкратце — моей компетенции оказалось недостаточно.
Я действовал из благих и логичных побуждений.
И потратил много времени стараясь помочь тебе.
Мур. ~6 часов, да-с.
Почти все задержки моих ответов были временем потраченным на размышление и поиск.
То что ты обвиняешь меня как злодея и дурака… ранит. Попросишь прощения?
Я не говорю что ты злодей и дурак. Просто не надо советовать то, в работоспособности чего сам не уверен, хорошо?
Мя был уверен что сработает. Не на уровне знания спецификации.
Но на уровне того что это предельно логично сразу по ряду причин.

Тем не менее.
Я прошу прощения что не потратил достаточно усилий на проверку практикой.
И впредь постараюсь на неё опираться получше и побольше. Мур?
Хорошо. В любой случае благодаря твоей идее я могу создать сейчас новый компрессор АПНГ, аналога которых в интернете не было. Так что спасибо тебе
Осталось запатентовать и грести бабки за использование компрессора XD
Ты добрый. И крутой. =^_^=
Попробуй в pngquant экспортировать палитру первого кадра и затем принудительно прикрутить её к остальным кадрам, а потом попробуй собери apng. По идее, если во все кадры принудительно прикрутить одну и ту же палитру, должно сработать.
судя по всему в ней нет такой возможности. да и это не очень хорошая идея — вдруг у будущих фреймов будут другие цвета?
Я сейчас придумал вот что: проанализировать все палитры фреймов, совместить всё и применить совмещенную палитру ко всем фреймам обратно. это немного прибавит вес, но уникальных цветов в разных фреймов не очень много
ValueError: palette contains raw palette data
збс…
это… как вообще понимать?
ну а ты сам попробуй проанализировать программно палитру любой из этих картинок:
dropmefiles.com/OHpp6
im = Image.open("{1}\q{0:04d}N.png".format(i, k))
print(im.palette.tobytes())
ValueError: palette contains raw palette data
Увы, я в этом шарю меньше твоего. Точнее, вообще не шарю, просто пытался предложить то, что, как мне казалось, должно было сработать. Ну или что ты, возможно, сам знаешь, как это сделать, просто не догадался использовать эту возможность (по себе знаю, иногда можно на простейшей ерунде затупить, которую знаешь, но о которой просто забыл). Думал, может, у тебя какая прога завалялась, которая может сама проанализировать количество цветов в каждом фрейме и затем свести их все в одну таблицу, а потом преобразовать в 256 цветов, расположив в порядке убывания и отсекая или преобразовывая лишние в ближайшие аналоги из первых 256. Ну или ты можешь скрипт такой написать, который сделает вышеописанное.
Я, кстати, после того как написал, подумал о том же — написать скрипт, который проанализирует цвета всех фреймов (причём сразу для ВСЕХ фреймов со ВСЕХ анимаций для конкретного персонажа — т.е. отдельно палитра Рейнбоу, палитра Флатти, палитра Твайлайт, палитра Рерити и т.д.) и составит палитру в максимум 256 цветов, которая и будет использоваться для всех фреймов персонажа.
так, мой план не сработал. Как ты предложишь реализовать твою идею? в той программе нет возможности впихнуть какую-либо палитру.
Скажу честно — понятья не имею, я просто предложил, исходя из того, что в том же фотошопе можно экспортировать/импортировать палитру для любого изображения. Думал, и в той программе подобное возможно
Кто угодно может читать и менять трафик
Будто что плохое. Как публичный вайвай монетизировать без MitM? Как уведомлять абонентов о технических работах и смене тарифов? Как спутниковой рыбалкой заниматься? HTTPS необходим для ряда задач типа интернет-банкинга, но не стоит пихать его во все щели, вплоть до read-only-ресурсов.
Убавь уже мальца темп, пзц смотрится же, как нервный тик бешенный.
@Waterfall
Прогнал все фреймы с дефолтными настройками через pngquant.
imgur.com/a/sd1v6rQ — сверху после прогона, снизу до прогона. 7 против 3.4 КБ. Стоит ли сжать еще сильнее?
Саш, я плохо умею оценивать «стоит ли» для других.
Я могу сказать как оно мне и указать на отличия.
Но моё мнение тут немногим более ценно чем обывателя.
— 2 килобайта против 7 исходных. Опции: -s1 --quality=32
Плюс за --quality… я вот вечно забываю что pngquant может сам решать сколько цветов нужно. =p
так, последняя идея, если и она не получится, то я сваливаю:
1. из всех 211 фреймов создать одну большую пикчу, на которой расположены все фреймы на одинаковом расстоянии
2. уменьшить цветовую палитру на этой большой картинки
3. порезать эту большую картинку на исходные фреймы, сохраняя при этом цветовую палитру
4. сделать АПНГ с кастомной цветовой палитрой, которая одинакова для всех фреймов, потому что они сжимались одновременно и все вместе.
Фреймы до сжатия — 359КБ/span>
Фреймы после индексирования палитры — 91 КБ/span>
Скрещиваем пальцы и надеемся, что всё пройдет нормально…
— картинки сохранили свою цветовую палитру. Теперь будем наедятся, что у каждой картинки останется одинаковая палитра, и создание АПНГ пройдет успешно… Если да — то АПНГ будет весить столько же или даже меньше, чем ГИФ.
166 КБ!!!!! (Оригинал весит 1.45 мб).
А вот это уже можно назвать прорывом! Поздравляю, коллега! Не svg, но ненамного его больше, и в любом случае сжатие в 9 раз от исходника без видимой потери качества — это действительно много.
Это не просто много, это может нахер послать все ГИФки и ВЕБПы — они ни при каком способе сжатия не смогут выдасть такое качество и такой вес. Сейчас попробую применить только что созданную технологию на те АПНГшки, которые я делал в предыдущих постах
А главное, что 256 цветов в 98% случаев предостаточно для всяких смайликов и небольших простых картинок. А для картинок побольше можно использовать двухбитную индексированную палитру, что даст уже максимум 65.5к цветов, при этом как минимум вдвое, а скорее где-то вчетверо-впятеро ужмёт любую png с rgba. Ну и apng с rgba.
С анимацией я пока не могу ничего сделать. Это уже нужно будет просить помощи у более опытных людей, но я просто никого не знаю, кто работает в adobe animate и кто мог бы это сделать. (это должен был быть ответ на коммент ниже)
Да тут, как мне кажется, достаточно сделать несколько дополнительных кадров ушей в любом векторном редакторе, а потом просто подгрузить эти кадры уха в анимацию и экспортировать целиком с остальными частями. Или AA этого не поддерживает?
поддерживает конечно. но кто будет рисовать уши. Сможешь подрисовать? Своими исходниками могу поделиться.
Могу разве что попробовать (учитывая мои кривые руки и глючащую мышку), но даже не знаю, в чём. Inkscape? Adobe Illustrator? Хотя за второй выше кто-то писал, что намертво виснет…
прямо в adobe animate можно рисовать. Желательно прям там и нарисовав в одном конкретном символе — так мне потом будет проще переделывать эти уши для других персонажей.
Какую версию посоветуешь брать? Самый последний? Или можно постарше да попроще?
Лучше чтобы мы оба работали в одной версии. но я сам не помню где именно я качал. Сейчас постараюсь найти
Да ты просто версию скажи. На Рутрекере их куча — 2019-го, 2018-го, 2017-го, 2015-го, какую надо, ту и возьму.
tapochek.net/viewtopic.php?t=220379 — качал я отсюда
если лень регаться — вот тебе торрент cdn.discordapp.com/attachments/600070809658327060/631951890355191838/Adobe.Animate.2019.u3.Multilingual.torrent
А, 2019. Щас с Рутрекера возьму.
Давай свои исходники, попробую поковырять. Но на многое не рассчитывай, как я уже говорил, рисую я хреновато, так что не факт, что у меня вообще толком получится…
Так, тебе где удобнее общаться? Там то что нужно зарыто очень глубоко. Лучше я тебе скину и сразу объясню что и где нужно подрисовать
Хм-м-м… Тимспик? Дискорд? Не к ночи помянутый Скайп? Если честно, мне больше первый по душе.
Лучше дискорд тогда: Sasha-Flyer#2543
Ага, только я не помню, как тебя там найти…
Лучше сам меня найди: malomaster#4307
отправил запрос
Теперь осталось только допилить анимацию (о чём я писал выше), чтобы она не была такой рваной и чтобы появилась полноценна позиция «под углом 45°», а также более заметное покачивание и покручивание ушками (ну и другие фиксы недоработок и мелких косяков анимации) — и можно будет из получившихся кадров пересобирать алфавит Ушифра, который при этом будет раз в 7-8 меньше, чем имеющийся.
Главное чтобы тот скрипт, которым ты сейчас собираешь анимацию текста Ушифра, не начинал херить анимацию букв при сборке, а то, как всегда, вылезет проблема, откуда не ждали…
Ух ты! Очень круто! *_*
А существует ли какой-то формат анимации, который можно вставить в Табун, в котором есть одна вот такая картинка:
Спойлер
И чтобы анимация просто меняла координаты обзора каждый фрейм. То есть, чтобы анимация «бегала» по этой большой картинке, как слайды у диапроектора.
Если такой тип анимации существует, то абсолютно каждый ушифр будет весить менее 100кб вне зависимости от длины.
Так, кажется я нашел что-то подобное, и это… *Барабанная дробь*… SVG. В него можно вставить png картинку и просто двигать её, установив определенный обзор. ПРавда, как я понял, там движение всегда плавное… А мне нужно фиксированное движение раз в 40 милисекунд. Сейчас буду глубже изучать этот аспект SVG…
Попробуй SWF.
SWF нельзя вставить в табун, а SVG — можно.
А GIF?
А такое можно сделать в гиф? Чтобы он возвращался к ранним слайдам?
А мне нужно фиксированное движение раз в 40 милисекунд.

Нужный тебе кусок делается CSS-анимацией, и там точно есть режим, где рисуется только начальная и конечная позиция
tabun.everypony.org/blog/tabun_animators/191670.html#comment13084721 — я уже всё что нужно реализовал. осталось это интегрировать в сайт. никакой css не нужен.
Кстати, скорее всего ты можешь прописывать image внутри ссылкой. То есть в итоге сам размер уменьшится еще раз в дохрена, останется только сам шифр. И вот такая картинка точно будет кэшироваться
Изображение все равно будет подгружаться откуда то, разницы никакой, в любом случае оно будет закешировано после первого использования
base64 сам по себе не кэшируется. У Флаера 99% размера svg (который будет загружен весь в любом случае) — этот самый base64.
иии… что от этого изменится? Юзеру ведь все равно это придется загружать, разве нет?
см выше
то есть если я туда вставлю ссылку — кешироваться будет?
Должно. Есть риск напороться на CSP, но на табуне она вроде отключена.
А как в этом убедиться на 100%?
F12, Network
Кстати, ты на странице Ушифра прикрути к скрипту, чтобы он в коде картинки ещё добавлял
title="Текст, написанный в ушифре"
Тогда шифр будет подсвечиваться при наведении мышкой на картинку.
Выше уже предлагали, плюс еще чтобы картинка была ссылкой на саму фразу
К сожалению, мою задумку Табун вырезает:
DEL
Анимации нет, но если вы откроете её в отдельной вкладке, то она появится.
— вот. Тут она без анимации, а если откроете в новом окне, то анимация будет.
Если в svg упаковать 100 фреймов 1920 на 1080 сколько будет вес?
Мало. Но к сожалению на табуне это работать не будет — он блочит скрипты от SVG.
Да мне и не для табуна. Меня интересует технический вопрос, каким макаром туда пихнуть секвенцию?
Я сейчас сам пытаюсь это сделать. позже отвечу.
Пока что получилось сделать вот так — imgur.com/a/iwizfVO
если удастся менять эти две переменные раз в 40 миллисекунд, не трогая при этом JS (который табун 100% заблочит) — значит получится сделать такую анимацию. Но я чет очень сомневаюсь, что это в принципе возможно без скриптов…
КАЖЕТСЯ Я ПОНЯЛ…
И чтобы анимация просто меняла координаты обзора каждый фрейм. То есть, чтобы анимация «бегала» по этой большой картинке, как слайды у диапроектора.
Если такой тип анимации существует, то абсолютно каждый ушифр будет весить менее 100кб вне зависимости от длины.

Есть прорыв! SVG-анимация на основе диапроектора:

Теперь надо научиться телепортировать анимацию прямо в нужные фреймы, и тогда всё будет заебись!
Правда, судя по всему, это не так уж и просто… нужные определенные знания в математики… www.w3.org/TR/SVG11/animate.html — помогите плиз разобраться в этом
Я так понимаю, мне нужен calcMode=«discrete», только вот я не найду ни одного примера с ним…
Всё, подробно почитав документацию svg, я во всём разобрался. В следующей версии ЛЮБОЙ ушифр будет весить 100-200кб вне зависимости от длины шифра (он будет зависеть только от выбранного персонажа)
И как дискретно переключаться между точками в плоскости?
Разобрался)
Интересно, до меня во всем мире кто-то вообще использовал это?
Увы, это старая тема, куда только секвенции не втискивали во времена флеша)
Спойлер
Или например www.joningram.co.uk/article/svg-smil-frame-animation/
Сиквенции и я юзал в Юнити. Но тут немного другое же — тут не просто сиквенция, а выборочный телепорт к определенному кадру, не обязательно в исходном порядке.
В анимации это широко используется, так кодируется липсинг-заранее находится соотвествие между звуком и произносимой буквой, условный квадрат который отображает рот бегает по квадрату из набора ртов. Знакомый так анимирует в блендере, только он это использует для переключения между позами крыльев или тела
— я вешу 125КБ и мой вес не зависит от длины вашего шифра. (раньше вес шифра увеличивался прямо пропорционально длине вашего сообщения). А еще я закодирована в base64, и браузера любят его кешировать. Поэтому, загрузив меня один раз, вам больше не надо будет тратить на меня интернет-трафик.
Гуд. Нужно провести сравнение нагрузки на CPU. В теории такой SVG не должен много жрать.
ща сделаю страничку
однако, как я понял, рендер происходит только когда картинка в твоей зоне видимости. У нас на экране в среднем 10-20 сообщений видно, и от такого количества анимаций лагать точно не будет.
Любая анимация жрет ресурсы. Нужно сравнение с APNG Дэшью
Тут у тебя svg встроены в страницу, попробуй как <img> их вставить чтобы приблизить к реальному сценарию использования.
хммм… а как?
<img src="http://ушифратор.рф/static/ex2.svg" />
Применил. нагрузка на процессор сократилась вдвое.
Итого мы имеем — 3% нагрузки проца на 400 АПНГ против 10% нагрузки на процессор на 400 SVG. Причем нагрузка на оперативку на APNG будет расти линейно в зависимости от длины шифра, а SVGу вообще похер на длину.
Кстати, в какой программе делал секвенции?
я в питоне сам какодил совмещалку и разделялку фреймов.
Разделялка:
Спойлер
def clice(max = 212):
    c = 1
    left, upper, width, lower = 0, 0, 80, 80
    for i in range(15):
        for k in range(15):
            im = Image.open("testN.png")

            bbox = (left, upper, width, lower )
            working_slice = im.crop(bbox)
            print(left, upper, width, lower)
            working_slice.save("288/q{0:04d}.png".format©)
            upper += 81
            lower += 81
            c +=1

            if c == max:
                return
        upper = 0
        lower = 80
        left += 81
        width += 81

Совмещалка:
Спойлер
frames = []
        webp_frames = []
        s = " -d 41 -m 4 -q 85 -lossy -min_size"
        for i in range(1, len(listdir("{0}".format(j)))+1):
            frames.append("{1}\q{0:04d}.png".format(i, j))
            webp_frames.append(Image.open("{1}\q{0:04d}.png".format(i, j)))

            s = s + " {1}\q{0:04d}.png".format(i, j)
        max = 211
        size = 81 * 15
        new_im = Image.new('RGBA', (size, size))
        c = 0
        for i in range(0, size, 81):
            for k in range(0, size, 81):
                new_im.paste(webp_frames[c], (i, k))
                c+=1
                if c == max:
                    break
            else:
                continue
Видимо SVG хуже в барузерах оптимизирован. Ну может допилят еще.
Думаю стоит реализовать оба варианта и дать пользователю выбрать.
Для SVG еще нужно держать свой сайт который будет их отдавать, даже если он будет за Cloudflare с кэшированием, все равно это еще одно звено. Если ты забьешь на его поддержу то все ушкошифры отовсюду пропадут.
Для SVG еще нужно держать свой сайт который будет их отдавать

У меня нет денег на хост. пока всё будет делать мой комп. Если ушифр окажется популярным — открою пожертвования и буду на них оплачивать облачный сервак.
Есть бесплатный хостинг sites.google.com/new
И че, туда можно заливать сколько угодно пикч, и все они будут заливать так же быстро, как и к себе локально на сервер?
А ты найди мне полностью бесплатный хостинг сейчас)
Не надо хранить файлы они же отличаются друг от друга только строчкой в конце, достаточно хранить хэш и фразу.
А хэшей у него будет штук 200)
Да хоть 2 ляма. Для базы это копейки.
я вешу 125КБ
Я-никон
Кстати
Верхний твой, нижний фш

К чему было столько мучений со сжатием?
Ты серьезно хочешь чтобы я каждую комбинацию смайлов ВРУЧНУЮ сжимал в фотошопе?
Зачем, ты столько мудохался со сжатием той секвенции по которой будешь ползать, но не проще ли было ее в фш загнать сразу и в пнг 8 засунуть?
Сжать один раз, но секвенций сколько будет? Вот у нас есть около 100 поняш в исходниках. Для каждой можно сделать по 10 эмоций минимум, плюс я планирую сделать многослойную анимацию (в одном слое будет статичная морда, во втором слое — упругая грива и ушки, в третьем слое — моргающие глаза, период моргания которых не будет зависить от других движений), плюс для особо сложных персонажей, таких как ДейБрейкер, Селестия, Луна и тд будут отдельные слои под анимированные гривы и прочие свечения (магия рога, свет и тд), и всё это тоже нужно сжимать как отдельные сиквенции. Всё это в сумме будет 2к сиквенций МИНИМУМ.
Но ведь оптимизация… Ты же можешь написать простой скрипт в фш который пакетно обрабатывает секвенции по шаблону
зачем мне писать какой-то скрипт для фша, если у меня уже есть готовый скрипт для питона, который сжимает так же?
Покажи свой файл который весит 88кб. хочу сравнить его со своим.
Открываешь фш, файл->save for web, выбираешь png 8-> играешься с настройками
Покажи свой файл который весит 88кб. хочу сравнить его со своим.

просто скинь мне его. не скриншотом, а именно полученный png файл.
120 килобайт, не 88 конечно, но разница в 3 раза, сжат первым попавшимся сервисом по сжатию пнг, естественно пнг 8 дает артефакты дизеринга по краям, поэтому от него все таки отказался
Спойлер
Ленивый ты, фш открыть не хочешь)
пнг 8 дает артефакты дизеринга по краям, поэтому от него все таки отказаться

Да не, есть таки способ: PNGOut умеет сохранять полупрозрачность для индексированных изображений, и это валидная фича, отображаться везде будет правильно.
Простое пересохранение в GIMP сжимает его ещё на 10 килобайт. Ленивый ты, гимп открыть не хочешь :D
ну так как лучше всего сжать сиквенцию пнг, чтобы с прозраностью, без артефактов и чтобы это можно было сделать прямо в питоне?
Хз, мне всё равно влом в этом всём разбираться, а тут и без меня советчиков хватает
Поэкспериментируй с консольными оптимизаторами png (коих должно быть достаточно)
Спойлер
написано что захешировано
попробуй у себя открыть. должно тоже хешироваться.