История изменений. Формат основан на Keep a Changelog.
Проект следует принципам семантического версионирования с версии 0.1.0
- Во всех пресетах выставлена стратегия размера отступ. Раньше они были выставлены только у импакта и субтитров, что приводило к контринтуитивному поведению. Теперь у всех, кроме субтитров, стоит "одинаковая высота" и 33.(3).
- Добавлен кэш текстур и свойств текста, теперь за один кадр в большинстве случаев будет пересчитываться только активный блок, что должно оптимизировать большинство проблем с производительностью, особенно в Firefox.
- Теперь можно задавать фиксированный размер шрифта в пикселях или пунктах.
- Теперь можно задавать относительный размер шрифта в долях высоты кадра.
- Теперь можно редактировать коэффициент отступа текста.
- Больше плавных анимаций в UI.
- Междустрочный интервал и настройки размера шрифта были спрятаны под многоточие.
- В пресете "Субтитры" теперь используются относительные размеры и увеличен отступ.
- Ширина в глобальном контейнере для текста теперь 90% вместо 96%
- Исправлено зависание при уменьшении в ноль блока с подбором размера шрифта "одинаковая ширина".
- Удалены лишние логи.
- У пресетов теперь есть тултипы с кратким описанием.
- Новый режим подбора размера шрифта: по всей ширине. Для каждой строчки размер шрифта подбирается отдельно так, чтобы все строчки оказались одной ширины. В этом режиме междустрочный интервал измеряется в пикселях, а не в строках.
- В мем-пример добавлен фрейм с демкой нового режима подбора размера шрифта.
- В списке шрифтов названия теперь должны всегда влезать.
- Устранена гонка при загрузке текстур, которая иногда приводила к ошибке при открытии мема.
- Шрифты:
- Bad Script
- JetBrains Mono
- Lora
- Marck Script
- Press Start 2P
- Raleway
- Tektur
- Unbounded
- Инструменты разработчика (Ctrl+F12, Shift+F12).
- Переименованы пресеты
TRUE IMPACT
->КАНОНИЧНЫЙ ИМПАКТ
post-ironic lobster
->постироничный лобстер
Arial bold subtitles
->Субтитры
White Helvetica bold
->подпись с тенью
Arial subtitles
->Arial с обводкой
Black Arial
->Обычный текст
- В персете
Субтитры
теперь тень. - Обновлены фреймы с демонстрацией шрифтов и пресетов.
- Пресеты
Helvetica bold subtitles
Black Arial bold
Black Helvetica bold
- Клонирование блоков по кнопке в списке блоков.
- Теперь в списках происходит скролл к активному элементу при его смене.
- При преобразовании блока из фиксированного в свободный селектором в списке блоков, его позиция и размеры сохраняются. Добавлена дополнительная опция преобразования со сбросом, работающая как раньше.
- Теперь можно выбирать режимы смешивания и наложения блока (реализованы на основе веб-стандарта).
- Теперь можно управлять прозрачностью всего блока (в настройках наложения).
- Добавлены клеточки на фон канваса для видимости прозрачности.
- Кнопка "Добавить фреймы из мема" позволяет добавлять фреймы к текущему мему из файла. Можно использовать для слияния мемов или импорта заготовленного набора паттернов.
- Теперь можно управлять насыщенностью тени:
- -1: полностью прозрачная тень;
- 0: как было раньше;
- +1: полная непрозрачность.
- Пресет
White Helvetica bold
- Кнопка для добавления блока с изображением стала больше и с текстом.
- У настроек блока вкладки теперь расположены сбоку, а не сверху.
- Теперь эффекты применяются не ко всему целому блоку текста, а к каждой его части (тени/обводка/заливка) отдельно. Это может повлиять на работу некоторых эффектов, если они не аддитивны (например, эффект "Пиксели").
- Переименован тип контейнера "Прямоугольник" на "Свободный".
- Включено сжатие при создании .meme, мемы должны стать немного легче.
- Обновлены плейсхолдеры и проект с примерами.
- Не отображались спрайты для управления эффектами после переключения режима редактирования (перемещение/обрезка). Теперь они отображаются всегда.
- При удалении блока/фрейма текущим выбирается ближайший в списке, а не первый.
- Исправлено падение при попытке открыть фрейм без текстовых блоков.
- Исправлено повторное применение прозрачности при использовании эффектов.
- Убраны фантомы, остававшиеся после удаления блока на активном фрейме.
- Изменение размеров блока и обрезка при зажатом шифте теперь делают это не одинаково для ширины и высоты, а с сохранением соотношения сторон.
- Убрана лишняя отладочная печать.
- Новый инпут: ползунок.
- Новый эффект: пиксели. Увеличивает пиксели.
- Пресеты:
Helvetica bold subtitles
,Black Helvetica bold
. - Теперь можно создавать блоки с изображениями:
- Для создания блока можно дропнуть файлы на список блоков или с зажатым Ctrl на текущий фрейм.
- При активном блоке с изображением вставка файла изменит его, иначе поменяется фон.
- У изображения можно изменять область обрезки.
- Теперь можно устанавливать размеры фрейма вне зависимости от фона.
- Фоновое изображение теперь можно удалить, оставив заливку одним цветом.
- Теперь входные данные эффектов описываются в виде json, по которому генерируется UI - необходимы шаг к кастомным шейдерам.
- Вёрстка форм с инпутами изменена из-за добавления ползунков.
- Заменены некоторые иконки.
- Стили в формах.
- У поля для текста больше нельзя менять ширину.
- Переведены или переименованы часть настроек на правой панели.
- Теперь числовые инпуты не должны выдавать странные значения с кучей знаков после запятой.
- В числовые инпуты нельзя вводить не числа.
- Новые плейсхолдеры с описанием существующего функционала.
- Сообщение об ошибке, в случае, если что-то пошло не так при старте приложения.
- Отключённая обводка больше не учитывается в расчётах.
- Изменено описание приложения.
- Переработан алгоритм подбора кегля по высоте строки, теперь для мелких кеглей используется поиск по заготовленной таблице и нет погрешности, которая приводила к обрезанию многострочных строк.
- Эффекты больше не приводят к множественному применению прозрачности.
- Крестовой градиент. Интерполирует четыре цвета между гранями прямоугольника
- Эффекты. Применяются к блоку, у блока может быть несколько эффектов.
- Искажения: выпуклость, вогнутость, закручивание.
- Цветокоррекция: оттенки серого, яркость и контраст, температура.
- Шум был добавлен для возможности имитации мела на доске или чего-то подобного.
- Отображение блока с фоновой картинкой. К нему можно добавлять эффекты.
- Добавлены подписи к кнопкам без текста.
- При открытии .meme неправильно сравнивалась версия.
- В Firefox по умолчанию отключена возможность копирования изображений из кода, из-за чего код падал с ошибкой.
Было добавлено сообщение для пользователя о том, как это исправить.
- Загрузка пользовательских изображений для паттернов. Они не будут сохранятся между перезагрузками, но будут сохранятся в .meme.
- Поддержка пользовательских паттернов в .meme
- Кнопки стали более единообразны.
- Паттерн glitter-gold заменён, поскольку на предыдущем были обнаружены вотермарки.
- Теперь по умолчанию паттерн не растягивается, а имеет масштаб 1:1.
- Положение выпадающих списков было неправильным при прокрутки страницы.
- Иногда паттерн менялся у нескольких блоков одновременно, теперь такого быть не должно.
- Ссылка на группу ВК.
- Теперь превью обновляется после окончания редактирования, а не синхронно с изменениями, в связи с проблемами производительности drawImage на некоторых компьютерах.
- Ресурсы перекодированы из png в webp, теперь они занимают в ~4 раза меньше места. Загрузка с нуля теперь занимает в 2 раза меньше времени.
- Исправлено отсутствие отрисовки начального фрейма при открытии.
- Ошибка 404 на старте приложения из-за неверного пути иконки заливки.
- Опечатки.
- Переработана работа с alpha-каналом: теперь прозрачность фона сохраняется, а на части устройств должна повыситься производительность.
- У блоков текста можно редактировать контейнер, который может быть глобальным, как в случае основного блока, или прямоугольником.
- У текста можно настроить позиционирование по вертикали и по горизонтали. В случае глобального контейнера, позиционирование по вертикали работает в рамках всего фрейма, что позволяет расположить текст не только снизу, но и сверху или по центру фрейма.
- У глобального текста можно регулировать минимальную высоту и максимальную высоты и ширину, вместо добивания пробелами.
- Любой материал может быть полупрозрачным.
- Фреймы можно клонировать.
- Блоки можно конвертировать из основного в дополнительный и обратно.
- Кнопка "Копировать" над текущим фреймом копирует итоговое изображение.
- Тени настраиваются отдельно для заливки и обводки.
- Весь UI был переписан, произошёл редизайн.
- Фавикон.
- Междустрочный интервал теперь считается в строках и изменяется над полем ввода текста.
- Настройка толщины обводки перемещена во вкладку с обводкой, измеряется в % от размера шрифта.
- Изменён алгоритм подбора отступа и габаритов глобального текста.
- Экспериментальные настройки.
- Временно удалена отмена действий по Ctrl+Z.
- Временно удалена отмена отмены действий по Ctrl+Shift+Z.
- Временно удалена страница помощь.
- Обводка без заливки теперь выглядит адекватно.
- Алгоритм вписывания текста в блок теперь должен выдавать погрешность не более 5 пикселей.
- Оптимизирована загрузка картинок и открытие .meme.
- В .meme была ошибка при открытии мема с заливкой паттерном с автоматической настройкой размера.
- Добавлены кнопки отмены и отмены отмены действия под текущим мемом.
- Добавлена поддержка сенсорных экранов для инструментов модификации блока - касанием можно выбрать модификатор, а затем начать его перемещать.
- Если есть только один фрейм, при сохранении отрендеренного мема скачивается картинка, а не архив с картинкой.
- Пресеты со стилями: над настройками текста появился селектор, в котором можно выбрать один из дефолтных стилей для текста.
- Теперь при создании нового блока текста в него копируется стиль текущего блока, а не дефолтный.
- Текст для всех шрифтов теперь отрисовывается с первой попытки благодаря принудительной загрузки всех шрифтов из
document.fonts
.
- Теперь можно выделять дополнительные текстовые блоки кликом мыши.
- Экспериментальная настройка "Точка интерполяции шрифта".
- Оптимизирован подбор размера шрифта в дополнительных блоках с помощью интерполяции с допущением линейной зависимости ширины строки от высоты шрифта.
- Заменены иконки в настройках.
- Хедер переехал в футер правой панели.
- Примеры теперь в HD.
- Если фрейм не влезает по высоте, скролл теперь появляется не у всей страницы, а в центральной секции.
- Страница больше не раздувается при большом количестве фреймов.
- Changelog.
- Помощь.
- Ссылка на репозиторий.
- Пример проекта.
- Иконки настроек текста.
- Экспериментальные настройки в отдельной вкладке - их сохранение не гарантируется еще больше, чем других фич.
- Толщина обводки - в процентах от размера шрифта.
- Коэффициент для интервала - регулирует междустрочный интервал, который зависит от этого коэффициента, максимальной высоты строки и толщины обводки.
- Расстояние между строками в блоках теперь считается по максимально возможной высоте строки.
- В csv теперь экспортируются все текстовые блоки, а не только основной.
- Редизайн.
- Появились вкладки.
- Всё что связано с проектом в целом - на панели слева (фреймы, импорт/экспорт).
- Всё что связано с текущим фреймом - на панели справа (текст, фон).
- Оптимизирован расчёт размера текста.
- Теперь текст чётко вписывается в блок, не вылезая за границы.
- Тени у текста и обводки.
- Дополнительные текстовые блоки можно поворачивать.
- Дополнительные текстовые блоки можно перемещать вдоль одной из осей, а не по всем сразу.
- Модификаторы трансформаций блоков:
- При масштабировании Ctrl начинает изменять размеры ассиметрично, Shift изменяет размеры пропорционально.
- При поворотах Ctrl сбрасывает поворот к нулю, Shift задаёт повороту шаг в 45 градусов.
- При перемещении Ctrl изменяет оси на мировые.
- Отмена действий по Ctrl+Z.
- Отмена отмены действий по Ctrl+Shift+Z.
- Отображение фокуса на элементах списков фреймов и текстовых блоков.
- Номера фреймов.
- Отображение плейсхолдера во время долгих операций.
- На одном фрейме теперь может быть один основной и произвольное количество дополнительных текстовых блоков.
- Дополнительные текстовые блоки можно перемещать и менять им размер.
- Порядок отрисовки текстовых блоков задаётся их порядком в списке блоков.
- Расчёт позиции текста в основном блоке возвращён к варианту из 0.0.1.
- Возможность выбора шрифта из набора: Impact, Arial, Lobster.
- Форматирование текста: курсив, жирный, капитель.
- Приведение к нужному регистру (UPPER, lower, As is).
- Настройка цвета текста и обводки: монотонный или один из предзагруженных паттернов.
- Заливка паттерном настраивается: масштабирование, сдвиг, поворот.
- Текст позиционируется чуть выше, чем ранее.
- Первая версия mememaker.
- Поддержка многокартиночных мемов, состоящих из набора фреймов.
- Можно добавлять, переставлять, удалять фреймы.
- Drag&Drop изображений на панель слева создаст новые фреймы с заданными изображениями в качестве фона.
- Фреймы поддерживают фон и один текстовый блок, чьи размеры и положение рассчитываются исходя из размеров картинки.
- Фон фрейма можно менять с помощью кнопки на панели справа, Drag&Drop по центру или правее, а также Ctrl+V с изображением в буфере обмена.
- Экспорт отрендеренного мема в виде zip-архива.
- Экспорт текста в формате csv.
- Сохранение мема в формате .meme.
- Открытие мема в формате .meme.