Сделать стикер онлайн для ВК

Данная статья рассчитана на читателей, уже имеющих подготовленные изображения стикеров. Процесс создания собственных стикеров требует навыков работы с графическими редакторами (Adobe Photoshop, Adobe After Effects и т.п.). Это достаточно трудоёмкое мероприятие, которое в двух словах не опишешь. Возможно, в будущем здесь появится ссылка на отдельную статью по созданию стикеров.

Еще важное уточнение. Мы будем использовать для создания набора стикеров десктопное приложение Telegram. В нём проще и удобнее создавать свои наборы стикеров Telegram. Но описываемый процесс также актуален и для мобильных версий приложения (Android и iOS).

Требования и рекомендации к стикерам

Общее правило для стикеров всех форматов: ширина стикера до 512 px. Высота может быть любой (не более 512 px), но лучше придерживаться пропорции «один к одному»: 512×512 px. Уважающие себя авторы также стремятся использовать прозрачный фон, добавлять обводку белого цвета.

Для набора статичных (не анимированных) стикеров изображения должны быть в формате PNG или WEBP.

КАК СДЕЛАТЬ СТИКЕРЫ В ВК ЗА 2 МИНУТЫ? ЛАЙФХАКИ В ВК. БЕСПЛАТНЫЕ СТИКЕРЫ В ВК

Анимированные стикеры Telegram необходимо подготовить в формате TGS (сжатый JSON). Важно, чтобы у всех стикеров в наборе был одинаковый FPS (количество кадров в секунду) — 30 или 60. Размер файла — до 64 КБ. Продолжительность — до 3х секунд.

В случае с видеостикерами Telegram файлы должны быть в формате WEBM (кодек VP9) и значением FPS (частота кадров в секунду) равным 30. Аудиопоток должен отсутствовать. Размер файла — до 256 КБ. Продолжительность — до 3х секунд.

Хорошо бы также подготовить иконку набора — изображение, анимацию или видео в том же формате, что и стикеры размером 100×100 px. Но она не является обязательной.

Как создать стикеры Telegram

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

  • /newpack — создать новый набор статичных стикеров
  • /newanimated — создать новый набор анимированных стикеров
  • /newvideo — создать новый набор видеостикеров
  • /addsticker — добавить новый стикер в набор
  • /editsticker — редактировать свойства стикера, в частности привязку к смайлу (emoji)
  • /ordersticker — именить порядок стикеров в наборе
  • /setpackicon — задать иконку (обложку или заглавный стикер) набора
  • /delsticker — удалить стикер из набора
  • /delpack — удалить набор

Есть еще несколько команд для просмотра статистики использования наших наборов стикеров, но с ними разберемся как-нибудь потом.

Создаём набор стикеров Telegram

Начинаем с команды /newpack, если хотим создать набор статичных стикеров. Или /newanimated и /newvideo для создания анимированных или видеостикеров соответственно. Пишем команду в поле для ввода сообщения.

Следующим шагом Бот попросит прислать ему стикеры набора. Можно попробовать отправить все файлы разом, но в набор все равно добавится только первый из них. Поэтому не торопимся, загружаем по одному.

как сделать норм стикеры?

Как создать стикеры Telegram

Бот может поругаться на нас фразой «Пожалуйста, приложите изображение как файл (без сжатия), а не как фотографию», если мы загружаем статичные стикеры. В десктопном приложении Telegram не нужно использовать кнопку с изображением скрепки. Вместо этого выберем файл стикера в файловом менеджере и перетащим в поле чата.

Как создать стикеры Telegram

В появившемся стандартном окне загрузки файлов Telegram будет возможность отредактировать, сжать, подписать стикер. Но все эти функции в данной ситуации не актуальны. Нажимаем на кнопку «Отправить».

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

Соответствующие смайлики нужны для удобного поиска стикеров. Пользователи вводят в поле сообщения смайлик, а Telegram подбирает и показывает соответствующие ему стикеры.

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

Когда все стикеры загружены, выполняем команду /publish. Если передумали публиковать набор, вводим команду /cancel — её можно ввести вообще в любое время. Попробуйте! . только без обид.

  1. Загрузить иконку (обложку) нашего набора. По знакомому нам принципу загрузим файл обложки или пропустим этот шаг, введя команду /skip — так делает 99% авторов. Хотя, это не круто, конечно.
  2. Выбрать id набора — уникальный идентификатор наших стикеров. Должен состоять из заглавных и строчных латинских букв и цифр. Стремимся использовать максимально короткую и легко читаемую комбинацию символов. Для примера укажем «ChpicSuDemo».
Еще по теме:  Как подать объявление в ВК с телефона

В результате Бот выдаст ссылку на наш набор вида https://t.me/addstickers/ChpicSuDemo. Перейдём по ней и нажмём на кнопку «Добавить стикеры».

Как создать стикеры Telegram

Этот сайт не является официальным сайтом мессенджера Telegram. Мы просто коллекционируем картинки.

Источник: chpic.su

Создайте наклейку онлайн в бесплатной программе

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

Создать наклейку онлайн

block image

Онлайн-редактор с шаблонами наклеек и стикеров для каждого бизнеса

Выберите готовый дизайн и создайте наклейку или стикер онлайн всего за несколько минут. Сформируйте визуальный стиль вашего бренда.

Как сделать наклейку своими руками
Выберите дизайн

Создавайте фирменные наклейки в Ellty. В нашей богатой библиотеке готовых шаблонов можно найти яркие и броские стикеры. Выберите что-нибудь подходящее для вашего бренда, используйте дизайн как есть, внесите свои правки или создайте собственный дизайн за несколько минут.

Персонализируйте шаблон

Добавьте свои собственные элементы фирменного стиля: логотип, цветовые решения, вы можете загрузить даже фирменный шрифт. Шаблоны полностью поддаются редактированию. Загляните в библиотеку элементов, чтобы найти необычную фигуру или уникальную иллюстрацию. Уместите на небольшом формате только самое главное. Побудите клиентов наклеить ваш стикер на ноутбук или телефон, так вы не только разделите в ним ценности вашей компании, но и получите отличную бесплатную рекламу.

Вы не потратите много времени на создание дизайна. Когда закончите — сохраните стикер на компьютер или телефон. Отправьте макет в ближайшую типографию или распечатайте на домашнем принтере. При скачивании выберите формат PDF — с ним вы получите печать в высоком разрешении.

Создать наклейку онлайн
Как сделать наклейку своими руками
Онлайн-конструктор стикеров и наклеек

Без труда воплощайте любые замыслы и переносите свои креативные идеи в дизайн за секунды. Простой и интуитивно понятный интерфейс с множеством инструментов для редактирования не требует специальной подготовки. Следуйте пошаговым подсказкам и окунитесь в занимательный процесс создания дизайна.

Создавайте креатив из сотни готовых шаблонов

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

Создавайте фирменный стиль, который захочется носить с собой

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

Размер и формат наклейки

Стандартом считаются круглые или квадратные наклейки. Они просты и экономичны в изготовлении. Большой популярностью пользуются наклейки необычной формы, овалы или абстракции. Такие формы лучше всего подходят для креативных идей, целью которых является привлечение внимания. В Ellty можно найти фигуры самых разнообразных форм в которые можно вписать содержимое стикера.

Для крупногабаритных объектов или для авто используют стикеры большого размера, они могут быть круглые, крадратные или в виде прямоугольника. Вы с легкостью можете изменить размер выбранного дизайна за секунду воспользовавшись инструментом мгновенного изменения размера. Он также пригодится вам, если вы хотите создать серию одинаковых стикеров разного формата.

Что можно поместить на стикер
Как можно использовать наклейки в бизнесе

Множество современных компаний используют наклейки в качестве дополнительного крепления в бумажной упаковке товаров. Еще одно излюбленное место — заклеивание шва коробки. В сфере доставки еды стикеры используют для скрепления двух сторон бумажного пакета, чтобы показать заказчику целостность и неприкосновенность к блюдам. Использование стикеров на этом не ограничивается.

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

Еще по теме:  Ошибки в таргетированной рекламе Вконтакте

Создайте яркую фирменную наклекйку для вашего продукта
Внесите индивидуальность и креативность в дизайн вашего бренда с помощью эксклюзивной наклейки.

Готовые макеты и интуитивно понятный интерфейс редактора поможет вам создать дизайн за несколько минут

Источник: www.ellty.com

Расширение API от Vk для стикеров на Elixir

image

Во Вк есть наборы стикеров, некоторые из которых даже бесплатные. Но во Вк нет ни какого публичного API для использования данного функционала на сторонних сайтах. Задачка состоит в том, чтобы используя функциональный язык Elixir написать расширение над местом хранения стикеров во Вк в виде API.

По моему мнению имена методов, и параметры, которые они принимали были бы следующими. Общим пространством имён для коллекции API методов для работы со стикерами было бы ключевое слово stickers , а сами методы возможно выглядели бы так:

stickers.get — со следующими параметрами: pack_ids , pack_id , fields ;
stickers.getById — со следующими параметрами: sticker_ids , sticker_id , fields .

Так как нет возможности создавать или редактировать стикеры, которые есть во Вк, данное API будет иметь только read-only методы. Честно, сложно угадывать, и не хочется подражать разработчикам социальной сети, по этому ограничусь только придумыванием имён методов. И не буду реализовывать API в стиле Вк, хоть это бы и добавило общей идентичности расширению.

Вот такие методы буду реализовывать для работы со стикерами:

Методы для наборов:

GET /packs GET /packs/ GET /packs//stickers

Методы для стикеров:

GET /stickers GET /stickers/ GET /stickers//pack

Реализация

Как написано выше, языком для написания программирования выбран Elixir. Базой данных в проекте будет выступать PostgreSQL и для взаимодействия с ней будут использованы Postgrex и Ecto . В качестве web-сервера будет использован Cowboy . За сериализацию данных в json-формат будет отвечать Poison . Вся поставленная задача довольно не объёмная и не сложная, по этому Phoenix использоваться не будет.

Для создания нового приложения используется команда mix new api_vk_stickers , она создаст базовую структуру, на основе которой будет строится расширение для API Вк.

Первым делам следует отредактировать файл mix.exs , который содержит базовую информацию о приложении и список используемых внешних зависимостей:

# mix.exs defmodule ApiVkStickers.Mixfile do use Mix.Project # . defp deps do [ 0.13″>, 2.1.1″>, 1.0.4″>, 1.1.0″>, 3.0″>] end end

После редактирования списка зависимостей необходимо их все установить, для этого предназначена команда mix deps.get .

Теперь приступим к написанию логики самого расширения. Структура проекта будет следующая:

models/ pack.ex sticker.ex decorators/ pack_decorator.ex sticker_decorator.ex encoders/ packs_encoder.ex stickers_encoder.ex finders/ packs_finder.ex stickers_finder.ex parsers/ ids_param_parser.ex controllers/ packs_controller.ex stickers_controller.ex router.ex

models

Модели создаются с использованием модуля Ecto.Schema . В модели Pack вместе с полем title будет ещё несколько дополнительных не обязательных полей.

Структура модели задаётся с помощью выражения schema/2 , как аргумент она принимает имя источника, то есть название таблицы. Поля задаются в теле schema/2 с помощью выражения filed/3 . filed/3 принимает название поля, тип поля (по умолчанию :string ) и дополнительные не обязательные функции (по умолчанию [] ).

Для определения связи один-ко-многим используется выражение has_many/3 .

# pack.ex defmodule ApiVkStickers.Pack do use Ecto.Schema schema «packs» do field :title field :author field :slug has_many :stickers, ApiVkStickers.Sticker end end

Для противоположной связи один-к-одному предназначено выражение belongs_to/3 .

Код Sticker

# sticker.ex defmodule ApiVkStickers.Sticker do use Ecto.Schema schema «stickers» do field :src, :map, virtual: true belongs_to :pack, ApiVkStickers.Pack end end

decorators

В Эликсире по понятным причинам объектов нет, но всё же логика расширения моделей будет размещена в модулях с суффиксом _decorator . API на равне с атрибутами полученными из базы данных также будут возвращать несколько дополнительных атрибутов. Для наборов это будет коллекция обложек в двух размерах и url места, где можно добавить себе данный набор во Вк.

Для стикеров дополнительным атрибутами будет коллекция адресов картинок в четырёх вариациях.

Код StickerDecorator

encoders

Сериализаторы будут ответственны за преобразование атрибутов в json-формат. Первым делом из модели будет создан ассоциативный массив с базовыми атрибутами, а затем в него будут добавлены экстра атрибуты полученные из декораторов. Последним шагом будет преобразование массива в JSON с помощью модуля Poison.Encoder.Map . Модуль PacksEncoder будет иметь один публичный метод call/1 .

# packs_encoder.ex defmodule ApiVkStickers.PacksEncoder do alias ApiVkStickers.PackDecorator defimpl Poison.Encoder, for: ApiVkStickers.Pack do def encode(pack, options) do Map.take(pack, [:id, :title, :author]) |> Map.put(:source_urls, PackDecorator.source_urls(pack)) |> Map.put(:showcase_url, PackDecorator.showcase_url(pack)) |> Poison.Encoder.Map.encode(options) end end def call(stickers) do Poison.encode!(stickers) end end

Еще по теме:  Как назвать контакт девушки

Сериализатор для стикеров будет идентичен.

Код StickersEncoder

# stickers_encoder.ex defmodule ApiVkStickers.StickersEncoder do alias ApiVkStickers.StickerDecorator defimpl Poison.Encoder, for: ApiVkStickers.Sticker do def encode(sticker, options) do Map.take(sticker, [:id, :pack_id]) |> Map.put(:source_urls, StickerDecorator.source_urls(sticker)) |> Poison.Encoder.Map.encode(options) end end def call(stickers) do Poison.encode!(stickers) end end

finders

Для того чтобы не хранить логику запросов к базе данных в контроллерах, будут использованы файндеры (простите, искатели). Их будет также два, по количеству моделей. Файндер по наборам будет иметь три базовые функции: all/1 — получение коллекции наборов, one/1 — получение одного набора и by_ids/1 — получение коллекции наборов согласно переданным id .

# packs_finder.ex defmodule ApiVkStickers.PacksFinder do import Ecto.Query alias ApiVkStickers. def all(query \ Pack) do Repo.all(from p in query, order_by: p.id) end def one(id) do Repo.get(Pack, id) end def by_ids(ids) do all(from p in Pack, where: p.id in ^ids) end end

Похожими функциями будет обладать файндер по стикерам, за исключением третьей функции by_pack_id/1 , которая возвращает коллекцию стикеров не по их id , а по их pack_id .

Код StickersFinder

# stickers_finder.ex defmodule ApiVkStickers.StickersFinder do import Ecto.Query alias ApiVkStickers. def all(query \ Sticker) do Repo.all(from s in query, order_by: s.id) end def one(id) do Repo.get(Sticker, id) end def by_pack_ids(pack_ids) do all(from s in Sticker, where: s.pack_id in ^pack_ids) end end

parsers

Данный сервис необходим из-за того, что не была познана практика передачи параметров в url GET-запроса таким образом, чтобы Plug автоматически представлял мне массив. И вообще как-то создавал для переданного набора id какую-то переменную, без указания принимаемых параметров в выражении get/3 модуля Plug.Router .

# ids_param_parser.ex defmodule ApiVkStickers.IdsParamParser do def call(query_string, param_name \ «ids») do ids = Plug.Conn.Query.decode(query_string)[param_name] if ids do String.split(ids, «,») end end end

controllers

Контроллеры будут на основе модуля Plug.Router , DSL которого многим напомнит фреймворк Sinatra. Но прежде чем приступить к самим контроллерам, необходимо собрать модуль который будет отвечать за маршруты.

Код router.ex

defmodule ApiVkStickers.Router do use Plug.Router plug Plug.Logger plug :match plug :dispatch forward «/packs», to: ApiVkStickers.PacksController forward «/stickers», to: ApiVkStickers.StickersController match _ do conn |> put_resp_content_type(«application/json») |> send_resp(404, ~s)) end end

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

# packs_controller defmodule ApiVkStickers.PacksController do # . get «/» do ids = IdsParamParser.call(conn.query_string) packs = if ids do PacksFinder.by_ids(ids) else PacksFinder.all end |> PacksEncoder.call send_json_resp(conn, packs) end get «/:id» do pack = PacksFinder.one(id) |> PacksEncoder.call send_json_resp(conn, pack) end get «/:id/stickers» do stickers = StickersFinder.by_pack_ids([id]) |> StickersEncoder.call send_json_resp(conn, stickers) end # . end
Код StickersController

# stickers_controller defmodule ApiVkStickers.StickersController do # . get «/» do pack_ids = IdsParamParser.call(conn.query_string, «pack_ids») stickers = if pack_ids do StickersFinder.by_pack_ids(pack_ids) else StickersFinder.all end |> StickersEncoder.call send_json_resp(conn, stickers) end get «/:id» do sticker = StickersFinder.one(id) |> StickersEncoder.call send_json_resp(conn, sticker) end get «/:id/pack» do sticker = StickersFinder.one(id) pack = PacksFinder.one(sticker.pack_id) |> PacksEncoder.call send_json_resp(conn, pack) end # . end

Результат

$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/packs’

[, «showcase_url»:»https://vk.com/stickers/spotty», «id»:1,»author»:»Андрей Яковенко»>, , «showcase_url»:»https://vk.com/stickers/persik», «id»:2,»author»:»Елена Савченко»>, , «showcase_url»:»https://vk.com/stickers/smilies», «id»:3,»author»:»Елена Савченко»>, , «showcase_url»:»https://vk.com/stickers/fruitables», «id»:4,»author»:»Андрей Яковенко»>]
$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/packs/?ids=2,3’

[,»showcase_url»:»https://vk.com/stickers/persik», «id»:2,»author»:»Елена Савченко»>, ,»showcase_url»:»https://vk.com/stickers/smilies», «id»:3,»author»:»Елена Савченко»>]
$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/packs/1’
, «showcase_url»:»https://vk.com/stickers/spotty», «id»:1,»author»:»Андрей Яковенко»>
$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/packs/1/stickers’
[, «pack_id»:1,»id»:1>. , «pack_id»:1,»id»:48>]

$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/stickers’
[, «pack_id»:1,»id»:1>, , «pack_id»:1,»id»:2>, , «pack_id»:1,»id»:3>. , «pack_id»:4,»id»:167>, , «pack_id»:4,»id»:168>]
$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/stickers/?pack_ids=2,3’
[,»pack_id»:2,»id»:49>, . ,»pack_id»:3,»id»:128>]
$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/stickers/1’

, «pack_id»:1,»id»:1>
$ curl -X GET —header ‘Accept: application/json’ ‘http://localhost:4000/stickers/1/pack’
, «showcase_url»:»https://vk.com/stickers/spotty», «id»:1,»author»:»Андрей Яковенко»>

Послесловие

Из проекта можно убрать PostgreSQL. В таком случае все данные о наборах стикеров будут храниться в коде включая данные об интервале принадлежащих им стикеров.

Проект не сильно упростится, но в скорость базы данных вы уже не уткнётесь точно.

  1. Если вам интересен функциональный язык программирования Elixir или вы просто сочувствующий то советую вам присоединиться к Telegram-чатам Wunsh Elixir и ProElixir.
  2. У отечественного Elixir сообщества начинает появляться единая площадка в лице проекта Wunsh.ru. Сейчас ребята во всю пишут новую версию сайта. Но уже у них есть подписка на рассылку. В ней нет ничего нелегального, раз в недельку будет приходить письмо с подборкой статей про Elixir на русском языке.
  • Занимательные задачки
  • API
  • ВКонтакте API
  • Функциональное программирование
  • Elixir/Phoenix

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...