Разное

Конструктор canvas что это: «Одноклассники» запустили конструктор полноэкранной рекламы Canvas

26.03.2021

Содержание

«Одноклассники» запустили конструктор полноэкранной рекламы Canvas


Depositphotos

 

Соцсеть «Одноклассники» внедрила конструктор Canvas в группах с аудиторией не менее 50 000 подписчиков, с помощью которого рекламодатели смогут создавать мобильную рекламу полноэкранного формата с различными элементами. Это новый тип промо-поста в мобильной ленте, сообщают в компании.

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

Механизм работы конструктора следующий: при нажатии на пост пользователь попадает на полноэкранную страницу с контентом. Туда рекламодатель может добавить видео с автозапуском, панорамные фото с функцией гироскопа, слайдер с изображениями и «активные кнопки» для перехода на сайт, звонка или установки приложения. 

Рекламу, созданную с помощью конструктора, уже протестировали  «Тинькофф Банк», онлайн-кинотеатр OKKO и жилой комплекс «Зиларт».

Семен Боярский, директор по развитию стратегических продуктов Одноклассников: «В 2016 году мобильная аудитория ОК выросла на 17% и продолжает расти. Для работы с этой аудиторией мы запускаем отдельные рекламные форматы. Canvas позволяет не просто размещать полноэкранную рекламу, но и использовать разные функции смартфона: например, элементы с привязкой к гироскопу создают 3D-эффект и лучше вовлекают пользователей. Запуск будет интересен крупным брендам и performance-рекламодателям. Canvas дает большой мобильный охват, страницы адаптируются под любые размеры экранов и легко загружаются даже при слабом интернет-соединении. Так что малый и средний бизнес может заменить традиционные лендинги на страницы Canvas и получать с его помощью лучшую конверсию».

Ольга Липовских, менеджер по таргетированной рекламе «Тинькофф Банк»: «Формат Canvas позволил нам увеличить CTR в 3 раза по сравнению с нашими стандартными кампаниями. CPC снизился в 2 раза по сравнению с мультиформатным размещением за тот же период. Кроме того, мы смогли вовлечь пользователей: по нашим данным, около 30% людей, досмотревших страницу до конца, перешли на сайт и оставили заявку. Ну и, конечно, количество фидбэка — «классов» и перепостов — значительно превысило стандартные рекламные форматы».

 

как создать canvas – insideok.ru

Одноклассники запустили новый рекламный инструмент — Canvas! Рассказываем, как им пользоваться. Спойлер: это очень просто.

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

Шаг 1

Зайдите в «Настройки» через панель управления, которая находится слева под аватаркой группы.

Шаг 2

В «Настройках» выберите инструмент «Конструктор canvas» в меню слева — откроется кабинет canvas.

Шаг 3

Внутри кабинета нажмите на кнопку «Создать canvas».

Шаг 4

Добавьте название вашего canvas в специальное поле и нажмите кнопку «Дальше».

Шаг 5

После этого откроется панель создания рекламного предложения сanvas, где вам нужно описать ваш товар или предложение.

Здесь доступны следующие опции:

  • Буква М в левом верхнем углу — это инструмент «Мастер-слайд», в нём вы можете выбрать и установить базовые элементы canvas: кнопку перехода на сайт, логотип и выбрать основной фон или фото.
  • Т (Текст) — здесь можно кратко описать ваше рекламное предложение. Надпись будет размещена прямо на баннере.
  • Изображение — здесь вы можете загрузить изображение, которое будет размещено в вашем canvas.
  • Видео — вы можете добавить видео, ранее загруженное в группу, или загрузить дополнительно.
  • Гиро-фото — изображение 360º, которое будет двигаться вместе с устройством или на экране. Это очень эффектный инструмент для визуальной рекламы.
  • Слайдер — с помощью этого инструмента вы можете показывать несколько рекламных предложений в своём canvas с помощью слайд-шоу.

Используйте для описания разные цвета, шрифты и задайте единый фон для вашего canvas или задайте индивидуальный фон для слайда. Все эти и другие опции расположены на панели «Мастер-слайд». Для смены цвета шрифта и фона используйте HTML-коды цветов. Подробнее об этом написано здесь.

Выберите функцию, которая будет выполняться по клику на рекламное предложение. В кабинете доступны следующие опции:

  • Ничего не делать — при клике ничего не будет происходить, эта опция подойдет для имиджевой рекламы.
  • Перейти на слайд — в этом случае пользователь переключится на следующую страницу вашего рекламного canvas по слайдов принципу презентации. Чтобы такой формат заработал, необходимо создать несколько слайдов. Эта опция также хороша, если у вас нет своего сайта, — можете создать мини-сайт, используя инструмент canvas.
  • Открыть веб-сайт — используется для привлечения пользователя на сайт.
  • Установить приложение — подходит для продвижения приложения или игры.

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

Технические требования для изображений и видео:

  • Размещение изображений — вы можете добавить несколько фото или картинок на один слайд в canvas. Общий вес всех изображений не должен превышать 5 Мб, а одного изображения — 1 Мб. Рекомендуемая ширина: от 414 пикселей и выше. Высота — не более чем в 1,65 раз больше ширины (683 пикселей при ширине в 414). Поддерживаемый форматы: PNG и JPEG.
  • Видео — вы можете добавить видео, ранее загруженное в группу, или загрузить дополнительно. Технические требования к видео: только 1 видео размером 16:9 или 4:3 можно расположить на слайде. Пожалуйста, обратите внимание на тот факт, что видео должно быть предварительно загружено в вашу группу и иметь общедоступные настройки публичного просмотра без ограничений.
  • Гиро-фото. Рекомендуемый размер для этого формата — 736 пикселей по высоте и до 1800 пикселей по ширине.

Шаг 6

После добавления изображений переходим к предпросмотру и публикации!

Нажмите на кнопку «Предпросмотр», чтобы посмотреть, что у вас получилось.

Шаг 7

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

Теперь промопост готов!

Чтобы увидеть, как ваш canvas будет выглядеть на экранах телефонов, отправьте ссылку на промопост себе в личные сообщения и откройте её с мобильного устройства.

Публикуем видеоинструкцию для тех, кому такой формат комфортнее:

Одноклассники запустили конструктор полноэкранной рекламы Canvas

Рекламодатели получили возможность создавать мобильную рекламу полноэкранного формата в Одноклассниках. В настройках всех верифицированных групп с аудиторией не менее 50 000 подписчиков появился конструктор Canvas: с помощью него можно создать рекламную…

Одноклассники запустили тестирование рекламного формата Canvas

Социальная сеть Одноклассники начала тестирование нового рекламного формата Canvas — интерактивных мобильных промопостов.

Первым протестировал новый формат «Сбербанк».

Canvas — новый тип промопоста в мобильном приложении социальной сети, который…

В Одноклассниках появился конструктор полноэкранной рекламы Canvas

Соцсеть «Одноклассники» запустила новый тип промопоста в мобильной ленте Canvas. С его помощью рекламодатели могут создавать мобильную рекламу полноэкранного формата — рекламные страницы с различными элементами, говорится в сообщении соцсети.

Реклама, созданная с помощью конструктора, доступна для продвижения через myTarget на аудиторию мобильных приложений ОК для смартфонов. В ближайшее время реклама будет показываться также на планшетах. Стоимость размещения объявления Canvas определяется в аукционе myTarget. 

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

Ранее в этом году реклама формата Canvas была доступна по индивидуальному запросу. Сейчас инструмент доступен в верифицированных группах с аудиторией не менее 50000 подписчиков, однако позже Canvas смогут воспользоваться администраторы всех групп в соцсети. Компания также подготовила инструкцию по запуску Canvas.

Новый формат будет интересен разным типам рекламодателей, считают в «Одноклассниках». Для крупных брендов это возможность в одном рекламном объявлении показать несколько продуктов и увеличить качество контакта с аудиторией с помощью интерактивных форматов внутри соцсети. Для малого бизнеса страница Canvas может стать заменой мобильной версии сайта, с которой клиенты смогут сразу позвонить или связаться с компанией в личных сообщениях.

По словам менеджера по таргетированной рекламе «Тинькофф Банка» Ольги Липовской, формат Canvas позволил увеличить CTR в 3 раза по сравнению со стандартными кампаниями, а CPC снизился в 2 раза по сравнению с мультиформатным размещением за тот же период. Кроме того, по данным банка, около 30% людей, досмотревших страницу до конца, перешли на сайт и оставили заявку. Также количество фидбэка — «классов» и перепостов — значительно превысило стандартные рекламные форматы.

Подпишитесь, чтобы получать полезные материалы о платном трафике

Социальная сеть Одноклассники для бизнеса

Дата публикации: 19-01-2020       293

​Один из мифов об Одноклассниках — там «тусуются» одни пенсионеры. В соцсети сидит аудитория, которая относится к платежеспособной и это вовсе не люди преклонного возраста.

  1. Главный костяк — аудитория от 26 до 35 лет, следующая группа — 36-45 лет, третья возрастная группа — люди от 46 до 55 лет. Молодежи до 18 лет в соцсети только 7%. Мужская аудитория — 43%, женская — 57%.
  2. Ежемесячно «Одноклассники» посещает 71 миллион пользователей, из них 45 миллионов приходится на российскую аудиторию. Со смартфона заходят в социальную сеть 74% людей.
     


Особенности социальной сети Одноклассники

При планировании продвигать бизнес в соцсети, следует учесть ряд особенностей, которые присущи этой площадке.

Вирусный контент

В «Одноклассниках» каждый зарегистрированный пользователь видит новостную ленту, которая состоит из опубликованного контента друзей и сообществ. Также читатель видит реакцию на контент: классы, комментарии, репосты. Когда публикация набирает от 100 «классов», то далее следует цепная реакция: в силу вступает вирусный контент. 

Хорошая реакция аудитории на:

  1. Эмоциональные посты: про любовь, дружбу, разочарование и т. п.
  2. Не очень длинное (на 1-3 мин.) и интересное видео.
  3. Простая тематика постов: проблемы с родителями, детьми, руководством, инфляция, рецепты, животноводство и садоводство, рукоделие и т. д.
  4. Минимальное (5-6 строк) количество текста. Аудитория «Одноклассников» не читает длинные посты.
  5. Юмор. Он ценится целевой аудиторией ОК.

Новостей из группы в общей ленте не будет. Для новостей есть отдельная вкладка. Эту публикацию просмотрит лишь заинтересованный пользователь. В общую новостную ленту контент попадет, когда ним поделятся.
 


Платежеспособная аудитория

ОК предлагает своим читателям много платных возможностей: дарить подарки друзьям, «невидимка»(хождение по аккаунтам невидимым для владельца), «оценка 5+», музыка без ограничения и т.п. В ОК есть площадка с товарами, услуга «поиск мастеров».

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


 

Реклама через MyTarget

Реклама в сети запускается посредством MyTarget. В аккаунте читателя при просмотре новостей сбоку или внутри ленты появляются блоки с рекламой. Оплачивается кампания выбранным способом оплаты: за показы либо за клики. Гарантированный просмотр рекламного материала будет при выборе кликабельных показов. 

При подаче рекламы выбирается возраст, местоположение, пол, хобби, интересы. Рекламное объявление проходит модерацию.
 


Реклама в сообществах

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

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


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

Использовать необходимо оба способа подачи рекламы. По результатам тестирования выбирается тот способ, который приносит больше целевых переходов по ссылке.

 

Рекламные инструменты в Одноклассниках

Промопосты

Промопосты показываются и подписчикам, и иным представителям ЦА. Этой целевой аудитории публикация показывается с кнопочкой «Подписаться» в сообщество одним кликом.

Промопосты демонстрируются согласно правилам таргетинга. Задаются нужные параметры, формирующие целевую аудиторию соцсети. Параметры заполняют в полях формы myTarget.

Создание промопоста:

  1. На странице своей группы публикуется пост.
  2. Регистрация в myTarget позволяет работать из личного кабинета.
  3. Из кабинета генерируется кампания «Заметка». Для этого размещается в нужном поле ссылка на публикацию.
  4. Настройки таргетинга позволяют указать: возраст, пол, интересы, бюджет (на день или на кампанию), длительность и охват.
  5. Опция «Аукционная стратегия» отмечает показы, фиксированную ставку или минимум бюджета.

Рекламная кампания отслеживается по статистике из личного кабинета.
 


Таргетинг

Целевые пользователи выбираются по параметрам.

  1. Возраст.
  2. Интересы: формируются на анализе поведения аудитории (поисковые запросы, поведение в сети, посещение ресурсов и т.п.)
  3. Продолжительность: указывается время показа, срок выхода РК.
  4. Бюджет, охват аудитории. Указывается стоимость одного дня и всего срока. В «Аукционной стратегии» используются предложенные варианты.

Используют функцию таргетинга по сообществам читателей.
 

Новинка: рекомендация рекламы с помощью платформы BigFish в Одноклассниках, работает вместе с фирмой Weborama. Программа проводит анализ поведения пользователей после опубликованного поста и показывает рекламодателю, какие ключи используют наряду с именем бренда или продукции.

Видеореклама

Это новая возможность проводить рекламную кампанию с помощью видеороликов с автоматическим запуском. Алгоритм как для запуска промо публикаций. В настройках таргетинга добавились: доходы, интересы и др. «Видеоконтент» публикуется в группе. В личном кабинете myTarget на видео устанавливается ссылка в «Заметке». РК начинает работу после разрешения модератора.

Скрытые темы

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

Рекламная кампания в приложениях

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

Canvas

Конструктор появился в ОК недавно. В рекламной кампании участвуют посты и сообщества от 50000 человек, связанные между собой. Когда пользователь кликает на публикацию, он попадает на страницу компании, на полный экран. Здесь рекламодатель может размещать видеоконтент с автозапуском, слайдеры, панорамные фотографии с функцией гироскопа.
 


Платформа «Одноклассники» многими брендами еще не освоена. Рост аудитории, появление инструментов для продвижения, возможности использовать разные типы контента, делают соцсеть отличной площадкой для продвижения бизнеса по территории стран СНГ и России.

Используются для продвижения: видеоканалы, проводятся игры, прямые эфиры, подарки, приложения ОК. Главное отличие сети: простое общение, основанное на дружеском отношении друг к другу. Платные фишки «Одноклассников», которыми аудитория пользуется давно, говорит о платежеспособности пользователей. Поэтому ОК для бизнеса подходят на 100%.

Рассказать друзьям:

«Одноклассниками» запущен конструктор полноэкранной рекламы canvas

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

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

Canvas представляет собой промо-пост в мобильной ленте соцсети «Одноклассников». К её тестированию приступили 9 февраля этого года. Пользователь на протяжении нажатия на должность попадает на определённую полноэкранную страницу, наполненную контентом.

Рекламодатель может на страницу добавить необходимое видео с автозапуском, слайдер с изображениями, панорамный снимок с функцией гироскопа, «активные кнопки» для осуществления перехода на сайт, установки приложения или звонка.

Первыми применяли конструктор «Тинькофф Банк», жилой комплекс «Зиларт», онлайн-кинотеатр OKKO. Ольга Липовских, являющаяся менеджером по таргетированной используемой рекламе «Тинькофф Банка» подчернула, что Canvas разрешил повысить в 3 раза CTR в сравнении со стандартными кампаниями.

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

, которую создали при помощи конструктора, есть дешёвой для продвижения конкретно через myTarget на потенциальную аудиторию мобильных приложений для смартфонов — «ОК». Рекламу в скором будущем начнут показывать кроме этого на планшетах. В это же время цена размещения объявлений Canvas определяется в рамках аукциона myTarget.

WMnews: МВидео Goods, PewDiePie, Tinkoff Fintech, Adwords Цена, Одноклассники Canvas


Похожие статьи, подобранные для Вас:

Canvas 2D | Canvas 2D (Примеры)

HTML5 тег <canvas> используется для отображения графики на лету при помощи скриптов (обычно JavaScript).

Тем не менее, сам по себе элемент <canvas> не имеет инструментария для рисования. Это всего лишь контейнер для графики. Чтобы в действительности что-то нарисовать в элементе <canvas>, необходимо использовать соответствующий скрипт.

Метод getContext() возвращает объект, предоставляющий методы и свойства для рисования в элементе <canvas>.

В данном справочнике приводится информация о свойствах и методах объекта getContext("2d"), который может использоваться для вывода в элементе <canvas> текста, линий, прямоугольников, кругов и др.

Internet Explorer 9, Firefox, Opera, Chrome и Safari поддерживают элемент <canvas> и его свойства и методы. Internet Explorer 8 и более ранние версии не поддерживают элемент <canvas>.

Цвета, стили, тени

Свойства:

fillStyle
Устанавливает/возвращает цвет, градиент или шаблон, используемый для заливки графического объекта
shadowBlur
Устанавливает/возвращает уровень размытости для теней
shadowColor
Устанавливает/возвращает цвет для теней
shadowOffsetX
Устанавливает/возвращает горизонтальное расстояние тени от фигуры
shadowOffsetY
Устанавливает/возвращает вертикальное расстояние тени от фигуры
strokeStyle
Устанавливает/возвращает цвет, градиент или шаблон, используемый для обводки фигуры

Методы:

addColorStop()
Определяет цвета и позицию остановки в объекте градиента
createLinearGradient()
Создает линейный градиент (для использования с содержимым элемента <canvas>)
createPattern()
Размножает заданный элемент в заданном направлении
createRadialGradient()
Создает радиальный/круговой градиент (для использования на содержимом элемента <canvas>)

Стили линий

Свойства:

lineCap
Устанавливает/возвращает стиль концов нарисованной линии
lineJoin
Устанавливает/возвращает тип угла, созданного пересечением двух линий
lineWidth
Устанавливает/возвращает ширину текущей линии
miterLimit
Устанавливает/возвращает максимальную длину среза

Прямоугольники

Методы:

clearRect()
Очищает заданную область пикселей внутри данного прямоугольника
fillRect()
Рисует «залитый» прямоугольник
rect()
Создает прямоугольник
strokeRect()
Рисует прямоугольник (без заливки)

Контуры

Методы:

arc()
Создает дугу/кривую (используется для создания окружностей или их части)
arcTo()
Создает дугу/кривую между двумя касательными
beginPath()
Начинает контур или сбрасывает текущий контур
bezierCurveTo()
Создает кубическую кривую Безье
clip()
Обрезает область любой формы и размера, находящуюся вне указанного контура
closePath()
Замыкает контур соединяя последнюю точку с первой
fill()
Делает заливку текущей фигуры (контура)
isPointInPath()
Возвращает значение true, если заданная точка находится внутри текущего контура, в обратном случае возвращается значение false
lineTo()
Добавляет новую точку контура и создает линию к этой точке от последней заданной точки
moveTo()
Передвигает точку контура в заданные координаты не рисуя линию
quadraticCurveTo()
Создает квадратичную кривую Безье
stroke()
В действительности рисует определенный вами контур

Трансформации

Методы:

rotate()
Поворачивает текущий графический объект
scale()
Изменяет масштаб текущего графического объекта
setTransform()
Сбрасывает текущую матрицу трансформации в начальное состояние, а затем вызывает метод transform() с теми же параметрами
transform()
Применяет заданную матрицу трансформации
translate()
Ретранслирует позицию (0,0) в новое место

Текст

Свойства:

font
Устанавливает/возвращает свойства шрифта для текстового содержимого
textAlign
Устанавливает/возвращает выравнивание для текстового содержимого
textBaseline
Устанавливает/возвращает базовую линию, используемую при выводе текста

Методы:

fillText()
Рисует текст с заливкой
measureText()
Возвращает объект, содержащий ширину заданного текста
strokeText()
Рисует текст без заливки

Вывод изображений

Методы:

drawImage()
Рисует изображение, содержимое другого элемента <canvas> или видео

Пиксельные манипуляции

Свойства:

data
Возвращает объект, содержащий данные изображения заданного объекта ImageData
height
Возвращает высоту объекта ImageData
width
Возвращает ширину объекта ImageData

Методы:

createImageData()
Создает новый, пустой объект ImageData
getImageData()
Возвращает объект ImageData, который копирует пиксельные данные заданной прямоугольной области холста
putImageData()
Помещает данные изображения (из заданного объекта ImageData) обратно в элемент <canvas>

Компоновка

Свойства:

globalAlpha
Устанавливает/возвращает текущее значение прозрачности или альфа-канала графического объекта
globalCompositeOperation
Устанавливает/возвращает то, как исходное (новое) изображение нарисовано на целевом (существующем) изображении

Другое

Методы:

save()
Сохраняет состояние текущего контекста
restore()
Возвращает ранее сохраненное состояние и атрибуты

createEvent()

getContext()
Возвращает контекст рисования на холсте
toDataURL()
Возвращает URI данных, содержащий представление изображения в формате, заданном параметром типа

как социальному стартапу составить бизнес-модель

Lean Canvas – это шаблон для построения бизнес-модели. С помощью простой таблицы, которая состоит из нескольких блоков, можно описать проект и пути его развития. Сделать таблицу можно самостоятельно или заполнить один из готовых онлайн-шаблонов. За основу также можно взять шаблон, созданный Александром Остервальдером и Ивом Пенье. 

Эксперты разделили весь бизнес-процесс на несколько блоков.

  • Потребительские сегменты. Определите, каких клиентов вы хотите привлечь, какие их потребности сможете решить. Если ваш проект нишевый, то и потребительские сегменты у вас будут четко очерчены. 
  • Ценностные предложения. После того как вы описали ваших клиентов, подумайте, какие услуги или товары представляют ценность именно для них. Опишите ваши преимущества, которые выделят вас в глазах людей. 
  • Каналы взаимодействия. Вы поняли, какая у вас ценность, а теперь нужно рассказать о ней вашим клиентам. Опишите, как вы будете общаться с людьми и предлагать им ваши услуги или товары. Каналы могут быть прямые и непрямые, а также собственные и партнерские.
  • Взаимоотношения с потребителем. Подумайте, как вы будете выстраивать контакт с вашими клиентами. Например, люди будут общаться с вами напрямую, за каждым клиентом будет закреплен сотрудник проекта. Или, наоборот, они будут полностью самостоятельно совершать все действия, а общаться между собой потребители смогут в вашем онлайн-сообществе. 
  • Финансовая устойчивость. Оцените, как ваш проект будет приносить прибыль. Будут ли какие-то услуги платные, может быть, пользователи смогут оформлять подписку с расширенными опциями. А может быть, вы сможете размещать рекламу или продавать лицензию. 
  • Ключевые ресурсы. Распишите все активы, которые есть у вас в наличии. К ним будут относиться оборудование и другие материальные ресурсы, специалисты, которые работают над проектом, интеллектуальная собственность и денежные средства.  
  • Ключевые виды деятельности. Это то, какие действия вы будете совершать для реализации вашей работы. В них сосредотачивается основная квалификация команды: разработка алгоритмов, консультирование клиентов, написание статей, организация событий. 
  • Ключевые партнеры. Это сеть компаний и людей, которая будет помогать вам в работе. Партнерские отношения помогают привлечь дополнительные ресурсы. Подумайте, может быть, у вас есть конкуренты, с которыми вы могли бы также вступить в стратегическое партнерство, ведь в конечном счете ваша работа будет направлена на благо общества, а значит, совместными усилиями принесет больше пользы. 
  • Структура затрат. Подумайте, какие вас ждут расходы и издержки. Они могут меняться или не меняться в зависимости от объема товаров или услуг. Издержки также могут снижаться в результате увеличения выпуска продукции или в результате большего спектра операций.

Более подробно о построении бизнес-моделей можно прочитать в следующих книгах:

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

При составлении бизнес-модели социального стартапа можно ориентироваться на шаблон Social Lean Canvas.

Авторы шаблона на русском языке: Екатерина Ульянова и Николай Лебедев.

Шаблон можно скачать по ссылке.

холст-конструктор — нпм

Цепной класс ES6 для узла-холста со встроенными утилитами.

Установка

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


Как пользоваться:

Node. js :

 

const {Canvas} = require ('холст-конструктор');

новый Canvas (300, 300)

.setColor ('# AEFD54')

.printRectangle (5, 5, 290, 290)

.setColor ('# FFAE23')

.setTextFont ('28px Impact')

.printText ('Hello World!' , 130, 150)

.toBuffer ();

Браузер :

 

  • Это создаст холст размером 300 пикселей в ширину и 300 пикселей в высоту.
  • Установите цвет на # AEFD54
  • Нарисуйте прямоугольник предыдущего цвета, покрыв все пиксели от (5, 5) до (290 + 5, 290 + 5)
  • Установите цвет на # FFAE23
  • Установите размер шрифта 28 пикселей с помощью шрифта Impact.
  • Напишите текст «Hello World!» в позиции (130, 150)
  • Вернуть буфер.

Теперь предположим, что мы хотим добавить изображения, мы будем использовать Canvas.resolveImage , который работает как в Node.js, так и в браузере:

 

const {Canvas} = require ('холст-конструктор');

асинхронная функция createCanvas () {

const image = await Canvas.resolveImage ('./ images / kitten.png');

вернуть новый холст (300, 400)

.printImage (image, 0, 0, 300, 400)

.setColor ('# FFAE23')

.setTextFont ('28px Impact')

.setTextAlign ('center')

.printText ('Котенок!' , 150, 370)

.toBufferAsync ();

}

  • Это создаст холст размером 300 пикселей в ширину и 400 пикселей в высоту.
  • Нарисуйте изображение с учетом буфера (изображение из папки изображений).
  • Установите цвет на # FFAE23
  • Установите размер шрифта 28 пикселей с помощью шрифта Impact.
  • Установите выравнивание текста по центру.
  • Напишите текст «Котенок!» в позиции (150, 370)
  • Вернуть буфер.

А теперь вы создали изображение с котенком на заднем плане и центрированным текстом внизу.

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

Холст | холст-конструктор

Холст | холст-конструктор

Иерархия

Индекс

Конструкторы

Аксессуары

Методы

Конструкторы

конструктор

  • новый Холст (холст: HTMLCanvasElement): Холст
  • новый Холст (ширина: номер, высота: номер, тип ?: «pdf» | «svg»): Холст
  • Параметры
    • холст: HTMLCanvasElement
    Холст возврата
  • Параметры
    • ширина: номер
    • высота: номер
    • Дополнительный тип: «pdf» | «svg»
    Холст возврата

Аксессуары

высота

  • получить высоту (): число
  • установить высоту (значение: число): void
  • Номер возврата
  • Параметры
    Возвраты недействительны

строка

тире

текст

шрифт высота
  • получить textFontHeight (): число

ширина

  • получить ширину (): число
  • установить ширину (значение: число): void
  • Номер возврата
  • Параметры
    Возвраты недействительны

Методы

дуга

  • arc (x: число, y: число, радиус: число, startAngle: число, endAngle: число, против часовой стрелки ?: undefined | false | true): это
  • Параметры
    • x: номер
    • у: номер
    • радиус: число
    • startAngle: число
    • endAngle: число
    • Необязательно против часовой стрелки: undefined | ложь | правда
    Возвращает

дуга

К
  • arc To (x1: число, y1: число, x2: число, y2: число, радиус: число): это
  • Параметры
    • x1: число
    • y1: номер
    • x2: число
    • y2: номер
    • радиус: число
    Возвращает

начало

Путь

Безье

Кривая К
  • Безье Кривая Кому (cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): this
  • Параметры
    • cp1x: номер
    • cp1y: номер
    • cp2x: номер
    • cp2y: номер
    • x: номер
    • у: номер
    Возвращает

изменить

Холст Высота
  • изменить Холст Высота (высота: число): это

изменить

Холст Размер
  • изменить Холст Размер (ширина: число, высота: число): это
  • Параметры
    • ширина: номер
    • высота: номер
    Возвращает

изменить

Холст Ширина
  • изменить Холст Ширина (ширина: число): это

прозрачный

Круг
  • очистить Круг (x: число, y: число, радиус: число, начало ?: число, угол ?: число, против часовой стрелки ?: логическое): this
  • Параметры
    • x: номер
    • у: номер
    • радиус: число
    • Начало значения по умолчанию: число = 0
    • Угол по умолчанию: число = Math.
      ПИ * 2
    • Значение по умолчанию против часовой стрелки: boolean = false
    Возвращает

прозрачный

прямоугольник
  • clear Rectangle (dx ?: number, dy ?: number, width ?: number, height ?: number): this
  • Параметры
    • Значение по умолчанию dx: number = 0
    • Значение по умолчанию dy: number = 0
    • Ширина значения по умолчанию: число = это.ширина
    • Значение по умолчанию height: number = this.height
    Возвращает

зажим

  • клип (fillRule ?: CanvasFillRule): это
  • Параметры
    • Необязательный fillRule: CanvasFillRule
    Возвращает

закрыть

Путь

create

Круглый Зажим
  • create Circular Clip (dx: number, dy: number, radius: number, start ?: undefined | number, angle ?: undefined | number, против часовой стрелки ?: undefined | false | true): this
  • Параметры
    • dx: номер
    • dy: номер
    • радиус: число
    • Необязательное начало: undefined | число
    • Дополнительный угол: неопределенный | число
    • Необязательно против часовой стрелки: undefined | ложь | правда
    Возвращает

создать

Круговой Путь
  • создать Круговой Путь (dx: число, dy: число, радиус: число, начало ?: число, угол ?: число, против часовой стрелки ?: логическое значение): this
  • Параметры
    • dx: номер
    • dy: номер
    • радиус: число
    • Начало значения по умолчанию: число = 0
    • Угол по умолчанию: число = Math.
      ПИ * 2
    • Значение по умолчанию против часовой стрелки: boolean = false
    Возвращает

создать

Эллипс Зажим
  • создать Эллипс Клип (x: число, y: число, радиусX: число, радиусY: число, вращение: число, startAngle: число, endAngle: число, против часовой стрелки ?: undefined | false | true): this
  • Параметры
    • x: номер
    • у: номер
    • radiusX: число
    • radiusY: число
    • вращение: номер
    • startAngle: число
    • endAngle: число
    • Необязательно против часовой стрелки: undefined | ложь | правда
    Возвращает

создать

Эллипс Путь
  • создать Эллипс Путь (x: число, y: число, радиусX: число, радиусY: число, вращение: число, startAngle: число, endAngle: число, против часовой стрелки ?: undefined | false | true): this
  • Параметры
    • x: номер
    • у: номер
    • radiusX: число
    • radiusY: число
    • вращение: номер
    • startAngle: число
    • endAngle: число
    • Необязательно против часовой стрелки: undefined | ложь | правда
    Возвращает

создать

линейный градиент
  • создать Линейный Градиент (x0: число, y0: число, x1: число, y1: число, шаги ?: keyof GradientStop []): CanvasGradient
  • Параметры
    • x0: число
    • y0: номер
    • x1: число
    • y1: номер
    • Шаг значений по умолчанию: keyof GradientStop [] = []
    Возвращает CanvasGradient

создать

Узор
  • Параметры
    Возвращает CanvasPattern
  • Параметры
    Возвращает

создать

радиальный градиент
  • создать Радиальный Градиент (x0: число, y0: число, r0: число, x1: число, y1: число, r1: число, шаги ?: keyof GradientStop []): CanvasGradient
  • Параметры
    • x0: число
    • y0: номер
    • r0: номер
    • x1: число
    • y1: номер
    • r1: номер
    • Шаг значений по умолчанию: keyof GradientStop [] = []
    Возвращает CanvasGradient

создать

Прямоугольник Зажим
  • создать Прямоугольник Клип (x: число, y: число, ширина: число, высота: число): это
  • Параметры
    • x: номер
    • у: номер
    • ширина: номер
    • высота: номер
    Возвращает

создать

Прямоугольник Путь
  • создать Прямоугольник Путь (x: число, y: число, ширина: число, высота: число): это
  • Параметры
    • x: номер
    • у: номер
    • ширина: номер
    • высота: номер
    Возвращает

создать

закругленный зажим
  • создать Закругленный Клип (x: число, y: число, ширина: число, высота: число, радиус: число | BeveledRadiusOptions): this

создать

закругленный путь
  • создать Закругленный Путь (x: число, y: число, ширина: число, высота: число, радиус: число | BeveledRadiusOptions): this

заливка

  • fill (fillRule ?: CanvasFillRule): это
  • Параметры
    • Необязательный fillRule: CanvasFillRule
    Возвращает

получить

Изображение Данные
  • получить Изображение Данные (): ImageData
  • получить Изображение Данные (обратный вызов: ImageDataCallback): это
  • получить Изображение Данные (x: число, y: число, ширина: число, высота: число): ImageData
  • получить Изображение Данные (x: число, y: число, ширина: число, высота: число, обратный вызов: ImageDataCallback): это
  • Возвращает ImageData
  • Параметры
    Возвращает
  • Параметры
    • x: номер
    • у: номер
    • ширина: номер
    • высота: номер
    Возвращает ImageData
  • Параметры
    Возвращает

получить

линия тире

— это точка

InPath
  • — это Точка InPath (x: число, y: число, fillRule ?: CanvasFillRule): логическое
  • Параметры
    • x: номер
    • у: номер
    • Необязательный fillRule: CanvasFillRule
    Возвращает логическое значение

— это

точка InStroke
  • — это Точка InStroke (x: number, y: number): логическое
  • Параметры
    Возвращает логическое значение

линия

Кому
  • строка Кому (x: число, y: число): это

мера

Текст
  • мера Текст (текст: строка): TextMetrics
  • мера Текст (текст: строка, обратный вызов: MeasureTextCallback): это
  • Параметры
    Возвращает TextMetrics
  • Параметры
    Возвращает

переместить

К
  • переместить Кому (x: число, y: число): это

печать

Круг
  • печать Круг (x: число, y: число, радиус: число): это
  • Параметры
    • x: номер
    • у: номер
    • радиус: число
    Возвращает

печать

круглая изображение
  • print Circular Image (imageOrBuffer: ImageResolvable, x: number, y: number, radius: number, __ namedParameters ?: {fit: «fill» | «contain» | «cover» | «none»}): this
  • Параметры
    • imageOrBuffer: ImageResolvable
    • x: номер
    • у: номер
    • радиус: число
    • Значение по умолчанию __ namedParameters: {fit: «fill» | «содержать» | «крышка» | «none»} = {}
      • подходит: «заливка» | «содержать» | «крышка» | «нет»
    Возвращает

печать

изображение
  • print Image (imageOrBuffer: ImageResolvable, x: number, y: number): это
  • print Image (imageOrBuffer: ImageResolvable, x: number, y: number, width: number, height: number): это
  • print Image (imageOrBuffer: ImageResolvable, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): this
  • Параметры
    Возвращает
  • Параметры
    • imageOrBuffer: ImageResolvable
    • x: номер
    • у: номер
    • ширина: номер
    • высота: номер
    Возвращает
  • Параметры
    • imageOrBuffer: ImageResolvable
    • sx: номер
    • sy: номер
    • sw: номер
    • ш: номер
    • dx: номер
    • dy: номер
    • dw: номер
    • dh: номер
    Возвращает

печать

линейный цвет градиент
  • print Linear Color Gradient (x0: number, y0: number, x1: number, y1: number, steps ?: keyof GradientStop []): this
  • Параметры
    • x0: число
    • y0: номер
    • x1: число
    • y1: номер
    • Дополнительные шаги: клавиша GradientStop []
    Возвращает

печать

линейная штрих градиент
  • print Linear Stroke Gradient (x0: number, y0: number, x1: number, y1: number, steps ?: keyof GradientStop []): this
  • Параметры
    • x0: число
    • y0: номер
    • x1: число
    • y1: номер
    • Дополнительные шаги: клавиша GradientStop []
    Возвращает

печать

Многострочная Текст
  • print Multiline Text (text: string, x: number, y: number): this
  • Параметры
    • текст: строка
    • x: номер
    • у: номер
    Возвращает

печать

узор

принт

Радиальный Цвет Градиент
  • print Radial Color Gradient (x0: number, y0: number, r0: number, x1: number, y1: number, r1: number, steps ?: keyof GradientStop []): this
  • Параметры
    • x0: число
    • y0: номер
    • r0: номер
    • x1: число
    • y1: номер
    • r1: номер
    • Дополнительные шаги: клавиша GradientStop []
    Возвращает

печать

радиальная штрих градиент
  • print Radial Stroke Gradient (x0: number, y0: number, r0: number, x1: number, y1: number, r1: number, steps ?: keyof GradientStop []): this
  • Параметры
    • x0: число
    • y0: номер
    • r0: номер
    • x1: число
    • y1: номер
    • r1: номер
    • Дополнительные шаги: клавиша GradientStop []
    Возвращает

печать

прямоугольник
  • печать Прямоугольник (x: число, y: число, ширина: число, высота: число): это
  • Параметры
    • x: номер
    • у: номер
    • ширина: номер
    • высота: номер
    Возвращает

печать

отзывчивый текст
  • print Responsive Text (text: string, x: number, y: number, maxWidth: number): this
  • Параметры
    • текст: строка
    • x: номер
    • у: номер
    • maxWidth: номер
    Возвращает

принт

Скругленный Изображение

принт

Скругленный Прямоугольник
  • print Rounded Rectangle (x: number, y: number, width: number, height: number, radius: number | BeveledRadiusOptions): this

печать

штрих прямоугольник
  • печать Штрих Прямоугольник (x: число, y: число, ширина: число, высота: число): это
  • Параметры
    • x: номер
    • у: номер
    • ширина: номер
    • высота: номер
    Возвращает

печать

штрих текст
  • print Stroke Text (text: string, x: number, y: number, maxWidth ?: undefined | number): this
  • Параметры
    • текст: строка
    • x: номер
    • у: номер
    • Необязательный maxWidth: undefined | число
    Возвращает

печать

текст
  • print Text (text: string, x: number, y: number, maxWidth ?: undefined | number): this
  • Параметры
    • текст: строка
    • x: номер
    • у: номер
    • Необязательный maxWidth: undefined | число
    Возвращает

печать

с оберткой текст
  • print Wrapped Text (text: string, x: number, y: number, wrapWidth: number): this
  • Параметры
    • текст: строка
    • x: номер
    • у: номер
    • ширина пленки: номер
    Возвращает

процесс

  • процесс (fn: (this: Canvas, canvas: Canvas) => unknown): this
  • процесс (fn: (this: Canvas, canvas: Canvas, arg1: P1) => unknown, arg1: P1): this
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2) => unknown, arg1: P1, arg2: P2): this
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3) => unknown, arg1: P1, arg2: P2, arg3: P3): это
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4) => unknown, arg1: P1, arg2: P2 , arg3: P3, arg4: P4): это
  • процесс (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5) => unknown, arg1 : P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5): это
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6 ) => неизвестно, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6): this
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6 : P6, arg7: P7) => unknown, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7): this
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5 , arg6: P6, arg7: P7, arg8: P8) => unknown, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7, arg8: P8): это
  • process (fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5 : P5, arg6: P6, arg7: P7, arg8: P8, arg9: P9) => unknown, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7 , arg8: P8, arg9: P9): это
  • process (fn: (this: Canvas, canvas: Canvas,. ..args: keyof T []) => unknown, … args: keyof T []): это
  • Параметры
    • fn: (this: Canvas, canvas: Canvas) => unknown
        • Параметры
          Возврат неизвестен
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1) => unknown
        • Параметры
          Возвраты неизвестны
    • arg1: P1
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2) => unknown
        • Параметры
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3) => unknown
        • (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3): unknown
        • Параметры
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4) => unknown
        • (это: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4): unknown
        • Параметры
          • это: Холст
          • холст: Холст
          • arg1: P1
          • аргумент2: P2
          • arg3: P3
          • arg4: P4
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    • arg4: P4
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5) => unknown
        • (это: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5): unknown
        • Параметры
          • это: Холст
          • холст: Холст
          • arg1: P1
          • аргумент2: P2
          • arg3: P3
          • arg4: P4
          • arg5: P5
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    • arg4: P4
    • arg5: P5
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6) => unknown
        • (это: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6): unknown
        • Параметры
          • это: Холст
          • холст: Холст
          • arg1: P1
          • аргумент2: P2
          • arg3: P3
          • arg4: P4
          • arg5: P5
          • arg6: P6
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    • arg4: P4
    • arg5: P5
    • arg6: P6
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7) => unknown
        • (это: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7): unknown
        • Параметры
          • это: Холст
          • холст: Холст
          • arg1: P1
          • аргумент2: P2
          • arg3: P3
          • arg4: P4
          • arg5: P5
          • arg6: P6
          • arg7: P7
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    • arg4: P4
    • arg5: P5
    • arg6: P6
    • arg7: P7
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7, arg8: P8) => unknown
        • (это: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7, arg8: P8): unknown
        • Параметры
          • это: Холст
          • холст: Холст
          • arg1: P1
          • аргумент2: P2
          • arg3: P3
          • arg4: P4
          • arg5: P5
          • arg6: P6
          • arg7: P7
          • arg8: P8
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    • arg4: P4
    • arg5: P5
    • arg6: P6
    • arg7: P7
    • arg8: P8
    Возвращает
  • Параметры типа
    • П1
    • P2
    • П3
    • П4
    • П5
    • P6
    • П7
    • П8
    • П9
    Параметры
    • fn: (this: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7, arg8: P8, arg9: P9) => неизвестно
        • (это: Canvas, canvas: Canvas, arg1: P1, arg2: P2, arg3: P3, arg4: P4, arg5: P5, arg6: P6, arg7: P7, arg8: P8, arg9: P9): unknown
        • Параметры
          • это: Холст
          • холст: Холст
          • arg1: P1
          • аргумент2: P2
          • arg3: P3
          • arg4: P4
          • arg5: P5
          • arg6: P6
          • arg7: P7
          • arg8: P8
          • arg9: P9
          Возврат неизвестен
    • arg1: P1
    • аргумент2: P2
    • arg3: P3
    • arg4: P4
    • arg5: P5
    • arg6: P6
    • arg7: P7
    • arg8: P8
    • arg9: P9
    Возвращает
  • Параметры типа
    Параметры
    • fn: (this: Canvas, canvas: Canvas,.
      ..args: keyof T []) => unknown
        • Параметры
          Возврат неизвестен
    • Остальные … аргументы: keyof T []
    Возвращает

положить

Изображение Данные
  • положить Изображение Данные (imagedata: ImageData, dx: number, dy: number): это
  • положить Image Data (imagedata: ImageData, x: number, y: number, dirtyX: number, dirtyY: number, dirtyWidth: number, dirtyHeight: number): this
  • Параметры
    • изображения: ImageData
    • dx: номер
    • dy: номер
    Возвращает
  • Параметры
    • изображения: ImageData
    • x: номер
    • у: номер
    • dirtyX: номер
    • dirtyY: номер
    • dirty Ширина: номер
    • dirty Высота: номер
    Возвращает

квадратичная

кривая до
  • квадратичная Кривая To (cpx: number, cpy: number, x: number, y: number): this
  • Параметры
    • cpx: номер
    • коп: номер
    • x: номер
    • у: номер
    Возвращает

сброс

тени

сброс

преобразование
  • сбросить Преобразование (): это

восстановление

повернуть

  • повернуть (угол: число): это

экономия

масштаб

  • масштаб (x: число, y: число): это

установить

сглаживание

набор

Цвет
  • set Color (color: string | CanvasGradient | CanvasPattern): этот
  • Параметры
    • цвет: шнурок | CanvasGradient | Холст
    Возвращает

набор

Global Alpha
  • установить Global Alpha (значение: число): это

набор

Global Composite Operation

комплект

Line Заглушка
  • set Line Cap (value: CanvasLineCap): это

набор

линия тире
  • set Line Dash (сегменты: число []): это

набор

линия тире смещение
  • set Line Dash Offset (value: number): this

набор

Линия Присоединиться
  • set Line Join (value: CanvasLineJoin): это

комплект

Линия Ширина
  • set Line Width (width: number): это

набор

митра предел
  • установить Угол Предел (значение: число): это

набор

выкройка качество

набор

Shadow Blur
  • set Shadow Blur (radius: number): this

набор

Shadow Color
  • набор Тень Цвет (цвет: нить): этот

комплект

Shadow OffsetX
  • set Shadow OffsetX (значение: число): this

набор

Shadow OffsetY
  • set Shadow OffsetY (значение: число): this

комплект

Ход поршня
  • set Stroke (color: string | CanvasGradient | CanvasPattern): это
  • Параметры
    • цвет: шнурок | CanvasGradient | Холст
    Возвращает

комплект

Ход Ширина
  • набор Ход Ширина (ширина: число): это

набор

Текст Выровнять
  • set Text Align (align: CanvasTextAlign): это

набор

Текст Базовая линия
  • set Text Baseline (baseline: CanvasTextBaseline): это
  • Параметры
    • базовый уровень: CanvasTextBaseline
    Возвращает

набор

Текст Чертеж Режим

набор

Текст Шрифт
  • set Text Font (font: string): this

набор

Текст Размер
  • набор Текст Размер (размер: число): это

набор

Transform
  • set Transform (a: number, b: number, c: number, d: number, e: number, f: number): this
  • установить Transform (преобразовать ?: DOMMatrix): это
  • Параметры
    • а: номер
    • б: номер
    • c: номер
    • д: номер
    • e: номер
    • ф: номер
    Возвращает
  • Параметры
    • Дополнительное преобразование: DOMMatrix
    Возвращает

ход

С

по

Blob
    с
  • по Blob (обратный вызов: BlobCallback, тип ?: undefined | строка, качество ?: любое): void
  • Параметры
    • Обратный вызов
      : BlobCallback
    • Дополнительный тип: undefined | строка
    • Дополнительное качество: любое
    Возврат недействителен
С

по

Blob Async
    с
  • по Blob Async (тип ?: undefined | строка, качество ?: любое): Promise
  • Параметры
    • Дополнительный тип: undefined | строка
    • Дополнительное качество: любое
    Возвращает обещание
С

по

Буфер
    от
  • до Буфер (): Буфер
  • Буфер с
  • по (mimeType: «image / png», config ?: PngConfig): Buffer
  • Буфер с
  • по (mimeType: «image / jpeg», config ?: JpegConfig): Buffer
  • Буфер с
  • по (mimeType: «application / pdf», config ?: PdfConfig): Buffer
  • Буфер с
  • по (mimeType: «raw»): Buffer
  • Буфер возврата
  • Параметры
    • mimeType: «image / png»
    • Дополнительная конфигурация: PngConfig
    Буфер возврата
  • Параметры
    • mimeType: «image / jpeg»
    • Дополнительная конфигурация: JpegConfig
    Буфер возврата
  • Параметры
    • mimeType: «application / pdf»
    • Дополнительная конфигурация: PdfConfig
    Буфер возврата
  • Параметры
    Буфер возврата
С

по

Буфер Асинхронный
    с
  • по Буфер Async (): Promise
  • Буфер Async (mimeType: «image / png», config ?: PngConfig): Promise
  • Buffer Async (mimeType: «image / jpeg», config ?: JpegConfig): Promise
  • С
  • по Buffer Async (mimeType: «application / pdf», config ?: PdfConfig): Promise
  • Возвращает обещание
    <буфер>
  • Параметры
    • mimeType: «image / png»
    • Дополнительная конфигурация: PngConfig
    Возвращает обещание
    <буфер>
  • Параметры
    • mimeType: «image / jpeg»
    • Дополнительная конфигурация: JpegConfig
    Возвращает обещание
    <буфер>
  • Параметры
    • mimeType: «application / pdf»
    • Дополнительная конфигурация: PdfConfig
    Возвращает обещание
    <буфер>
С

по

DataURL
    с
  • по DataURL (): строка
  • DataURL (mimeType: «image / png»): строка
  • DataURL (mimeType: «изображение / jpeg», качество ?: undefined | number): строка
  • Возвращает строку
  • Параметры
    Возвращает строку
  • Параметры
    • mimeType: «image / jpeg»
    • Дополнительное качество: undefined | число
    Возвращает строку
С

по

DataURLAsync
    с
  • по DataURLAsync (): Promise
  • DataURLAsync (mimeType: «image / png»): Promise
  • С
  • по DataURLAsync (mimeType: «image / jpeg»): Promise
  • С
  • по DataURLAsync (mimeType: «image / jpeg», config: JpegConfig): Promise
  • DataURLAsync (mimeType: «изображение / jpeg», качество: число): Promise
  • Returns Promise
  • Параметры
    Returns Promise
  • Параметры
    Returns Promise
  • Параметры
    • mimeType: «image / jpeg»
    • Конфигурация
      : JpegConfig
    Returns Promise
  • Параметры
    • mimeType: «image / jpeg»
    • качество: номер
    Returns Promise

перевести

  • translate (x: number, y: number): это

обертка

Текст
  • wrap Text (text: string, wrapWidth: number): string
  • wrap Text (text: string, wrapWidth: number, callback: WrapTextCallback): это
  • Параметры
    • текст: строка
    • ширина пленки: номер
    Возвращает строку
  • Параметры
    Возвращает

Легенда

  • Конструктор
  • Метод
  • Аксессуар

8.

Виджет Canvas
bd или ширина границы Ширина границы по внешней стороне холст; см. Раздел 5.1, «Размеры». В по умолчанию — два пикселя.
bg или фон Цвет фона холст. По умолчанию это светло-серый цвет, примерно '# E4E4E4' .
близко Число с плавающей запятой , которое указывает, насколько близко мышь должна быть к элементу, чтобы считаться внутри него.По умолчанию 1.0.
ограничить Если true (по умолчанию), холст не может быть прокручивается за пределами области прокрутки (Смотри ниже).
курсор Курсор, используемый на холсте. См. Раздел 5.8, «Курсоры».
высота Размер холста по оси Y.См. Раздел 5.1, «Размеры».
основной фон Цвет выделения фокуса, когда виджет делает нет фокуса. См. Раздел 53, «Фокус: маршрутизация ввода с клавиатуры».
цвет подсветки Цвет показан в фокус выделять.
толщина слоя Толщина фокуса выделять. Значение по умолчанию — 1.
рельеф Рельефный стиль полотна. По умолчанию tk. FLAT . См. Раздел 5.6, «Стили рельефа».
область прокрутки Кортеж ( w , н. , e , s ) , который определяет насколько большой можно прокрутить холст, куда w это левая сторона, n вершина, e правая сторона, и с дно.
выбрать фон Цвет фона использовать отображение выбранных элементов.
selectborderwidth Ширина границы для использования вокруг выбранного Предметы.
selectforeground Цвет переднего плана использовать отображение выбранных элементов.
Takefocus Обычно фокус (см. Раздел 53, «Фокус: маршрутизация ввода с клавиатуры») будет циклически проходить через этот виджет с помощью клавиши табуляции только если для него установлены привязки клавиатуры (см. Раздел 54, «События» для обзора привязки клавиатуры). Если вы установите для этого параметра значение 1, focus всегда будет посещать этот виджет. Установите его на '' , чтобы получить поведение по умолчанию.
ширина Размер холста по оси X. См. Раздел 5.1, «Размеры».
xscrollincrement Обычно холсты можно прокручивать по горизонтали, чтобы любое положение. Вы можете получить такое поведение, установив xscrollincrement до нуля. если ты установите для этого параметра некоторое положительное измерение, холст могут быть размещены только на кратных расстояние, и значение будет использоваться для прокрутки на единицы прокрутки , например когда пользователь нажимает стрелки на концах полоса прокрутки.Для получения дополнительной информации о прокрутке единиц, см. Раздел 22, «Виджет Полоса прокрутки ».
xscrollcommand Если холст можно прокручивать, установите для этого параметра значение .set () метод горизонтального полоса прокрутки.
yscrollincrement Работает как xscrollincrement , но управляет вертикальным движением.
yscrollcommand Если холст можно прокручивать, этот параметр должен быть .set () метод вертикальной полосы прокрутки.

Холст модуля — PyX 0.15 Руководство

Кроме того содержит класс canvas.clip , который позволяет обрезать вывод.

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

класс холст. холст ( attrs = [] , texrunner = None , ipython_bboxenlarge = 1 * unit.t_pt )

Создайте новый холст, применив заданные атрибуты , которые могут быть экземплярами trafo.trafo , холст.клип , стиль .strokestyle или стиль. Заполнение . Аргумент texrunner может использоваться для указания Экземпляр texrunner, используемый для метода text () холста. Если не указано, по умолчанию используется text.defaulttexrunner . ipython_bboxenlarge определяет bboxenlarge document.page для IPython _repr_png_ и _repr_svg_ .

Пути можно нарисовать на холсте одним из следующих способов:

холст. рисовать ( путь , attrs )

Рисует путь на холсте, применяя заданные атрибуты . В зависимости от attrs путь будет заполнен, обведен, орнаментирован или их комбинация из них. Для общих первых двух случаев следующие два удобства предоставляются функции.

холст. заполнить ( путь , attrs = [] )

Заполняет заданный путь на холсте, применяя заданные атрибуты .

холст. ход ( путь , attrs = [] )

Обводит заданный путь на холсте, применяя заданные атрибуты .

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

холст. вставка ( поз. , attrs = [] )

Вставляет экземпляр базы .Canvasitem в холст. Если attrs являются в настоящее время элемент вставлен в новый экземпляр canvas с атрибутом как аргументы, переданные его конструктору. Затем этот экземпляр canvas вставляется в холст.

Вывод текста на холст возможен с помощью

холст. текст ( x , y , текст , attrs = [] )

Вставляет текста в позицию ( x , y ) на холст, применяя атрибуты .Это ярлык для вставки (texrunner.text (x, y, text, attrs)) .

Для группировки операций рисования можно использовать слои:

холст. слой ( имя , вверху = нет , внизу = нет )

Этот метод создает или получает слой с именем и именем .

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

Класс canvas обеспечивает доступ к общему геометрическому размеру его элемент:

холст. bbox ()

Возвращает ограничивающую рамку, охватывающую все элементы холста (см. Разд. bbox ).

Canvas также позволяет установить его TeX runner:

холст. settexrunner ( texrunner )

Устанавливает новый texrunner для полотна.

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

холст. writeEPSfile ( файл , ** kwargs )

Записывает холст в файл с использованием формата EPS. файл либо должен предоставить write или используется как строка, содержащая имя файла (расширение .eps добавляется автоматически, если его нет). Этот способ создает одностраничный документ, передавая kwargs в document.page конструктор для всех kwargs , начиная с page_ (без этого префикса) и вызывает метод writeEPSfile () этого document.document экземпляр, передающий файл и все kwargs начиная с write_ (без этого префикса).

холст. writePSfile ( файл , * args , ** kwargs )

Аналогично writeEPSfile () , но с использованием формата PS.

холст. writePDFile ( файл , * args , ** kwargs )

Аналогично writeEPSfile () , но с использованием формата PDF.

холст. writeSVGfile ( файл , * args , ** kwargs )

Аналогично writeEPSfile () , но с использованием формата SVG.

холст. записать файл ( имя файла , * args , ** kwargs )

Определите тип файла (EPS, PS, PDF или SVG) по расширению файла имя файла и вызвать соответствующий метод записи с заданными аргументами arg и кваргс .

холст. pipeGS ( устройство , разрешение = 100 , gscmd = «gs» , gsoptions = [] , textalphabits = 4 , graphicsalphabits = 4 , ciecolor = False3 , ввод = «eps» , ** kwargs )

Этот метод передает содержимое холста интерпретатору ghostscript для создания других форматов вывода. Результат возвращается с помощью объект python BytesIO. устройство определяет устройство вывода ghostscript с помощью строка. В зависимости от конфигурации ghostscript "png16" , "png16m" , "png256" , "png48" , "pngalpha" , "pnggray" , «pngmono» , «jpeg» и «jpeggray» могут быть доступны среди другие. См. Вывод команды gs --help и документацию ghostscript. для дополнительной информации.

разрешение указывает разрешение в dpi (точек на дюйм). GS — это имя исполняемого файла ghostscript. gsoptions — это список дополнительных параметры, переданные интерпретатору ghostscript. текстовых алфавита и graphicsalphabits — удобные параметры для установки TextAlphaBits и GraphicsAlphaBits опции ghostscript. Добавление этих параметры можно пропустить, установив для них значение Нет . ciecolor добавляет флаг -dUseCIEColor для улучшения преобразования цветов CMYK в RGB. ввод может быть "eps" или "pdf" , чтобы выбрать тип ввода, который будет передается в ghostscript (обратите внимание на несколько другие функции, доступные в различные типы ввода, например, epsfile включение и прозрачность).

kwargs передаются методу writeEPSfile () (не считая файла параметр), который используется для генерации входных данных для ghostscript. Этим вы получить доступ к документу .стр. аргументы конструктора.

холст. writeGSfile ( filename = None , device = None , ** kwargs )

Этот метод похож на pipeGS, но содержимое записывается в файл имя файла . Если имя файла равно None, оно автоматически определяется по имени скрипта. Если имя файла — «-», вывод записывается в стандартный вывод. В обоих случаях устройство необходимо указать для определения формата (и суффикса файла в случае filename создается из имени скрипта).

Если для устройства задано значение None, но указано имя файла с суффиксом, файлы PNG будут быть записанными с помощью устройства png16m и файлов JPG с помощью устройства jpeg.

Все остальные аргументы идентичны аргументам canvas.pipeGS () .

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

Как создать и сохранить изображение с помощью Node.js и Canvas

Всего несколько дней до 2021 JavaScript Full-Stack Bootcamp откроется.
Записывайтесь в лист ожидания!


Я делюсь своими сообщениями в блоге в Twitter, и было время, когда я развлекался рисованием изображения для каждого сообщения в блоге.

Я настроил Hugo так, чтобы он использовал изображение с именем banner.png или banner.jpg , хранящееся в папке сообщений, для использования в качестве изображения Open Graph, например:

    

Если в посте нет изображения, я показываю свой аватар:

    

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

В Твиттере все они выглядят одинаково:

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

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

Баннер представляет собой изображение в формате PNG, и чтобы сообщение было сосредоточено на теме («как создать и сохранить изображение с помощью Node.js и Canvas»), я пропущу некоторые части.

Кроме того, есть много разных способов делать то, что я делал, вот только один.

Прежде всего, какие пакеты npm нам нужны?

Всего один! холст :

  npm установить холст  

Этот пакет предоставляет нам реализацию Canvas API на основе Node.js, которую мы знаем и любим в браузере.

Другими словами, все, что я использую для создания изображений, также работает в браузере.

За исключением того, что вместо получения экземпляра Canvas из HTML-элемента , я загружаю библиотеку, получаю из нее функцию createCanvas :

  const {createCanvas} = require ('холст')
  

Затем я вызываю эту функцию, передавая ширину и высоту холста, которые я установил на 1200×600:

  const ширина = 1200
const height = 600

const холст = createCanvas (ширина, высота)
const context = холст.getContext ('2d')
  

Покрасим его в черный цвет (случайно уронив отсылку к Rolling Stones):

  context.fillStyle = '#fff'
context.fillRect (0, 0, ширина, высота)
  

А теперь перейдем к добавлению текста.

Сначала я выбираю шрифт Menlo, большой и жирный. Выравниваю по центру, затем устанавливаю белый цвет.

Наконец, я вызываю context.fillText () , чтобы нарисовать текст на холсте:

  const text = 'Привет, мир!'

контекст.font = 'bold 70pt Menlo'
context.textAlign = 'центр'
context.fillStyle = '#fff'
context.fillText (текст, 600, 170)
  

Нарисуем синюю рамку позади текста:

  const text = 'Привет, мир!'

context.textBaseline = 'вверху'
context.fillStyle = '# 3574d4'
const textWidth = context.measureText (текст) .width
context.fillRect (600 - textWidth / 2-10, 170-5, textWidth + 20, 120)
context.fillStyle = '#fff'
context.fillText (текст, 600, 170)
  

Мы установили для свойства textBaseline значение top , чтобы упростить позиционирование прямоугольника.Затем я проверяю размер текста, используя measureText () , и рисую его, используя те же координаты, которые мы использовали для рисования текста.

Убедитесь, что вы рисуете прямоугольник перед текстом, потому что в Canvas вы рисуете объекты друг на друге в следующем порядке:

Круто! Теперь я хочу показать внизу URL своего веб-сайта:

  context.fillStyle = '#fff'
context.font = 'жирный, 30 пунктов, Menlo'
context.fillText ('flaviocopes.com', 600, 530)
  

И еще хочу добавить свой логотип.Для этого давайте импортируем функцию loadImage из модуля Canvas :

  const {createCanvas, loadImage} = require ('холст')
  

, и мы называем это указанием изображения logo.png , содержащегося в той же папке, где мы запускаем скрипт:

  loadImage ('./ logo.png'). Then (image => {
  
})
  

Как только обещание разрешено, у нас есть объект изображения, и мы можем нарисовать его на холсте с помощью drawImage () :

  loadImage ('./logo.png').then(image => {
  context.drawImage (изображение, 340, 515, 70, 70)
})
  

Вот и все! Теперь мы можем сохранить изображение в файл image.png , используя метод toBuffer () :

  const buffer = canvas.toBuffer ('изображение / png')
fs.writeFileSync ('./ image.png', буфер)
  

Вот полный код:

  const fs = require ('fs')
const {createCanvas, loadImage} = require ('холст')

const ширина = 1200
const height = 630

const холст = createCanvas (ширина, высота)
const context = холст.getContext ('2d')

context.fillStyle = '# 000'
context.fillRect (0, 0, ширина, высота)

context.font = 'жирный 70pt Menlo'
context.textAlign = 'центр'
context.textBaseline = 'вверху'
context.fillStyle = '# 3574d4'

const text = 'Привет, мир!'

const textWidth = context.measureText (текст) .width
context.fillRect (600 - textWidth / 2-10, 170-5, textWidth + 20, 120)
context.fillStyle = '#fff'
context.fillText (текст, 600, 170)

context.fillStyle = '#fff'
context.font = 'жирный, 30 пунктов, Menlo'
context.fillText ('flaviocopes.com ', 600, 530)

loadImage ('./ logo.png'). then (image => {
  context.drawImage (изображение, 340, 515, 70, 70)
  const buffer = canvas.toBuffer ('изображение / png')
  fs.writeFileSync ('./ test.png', буфер)
})
  


2021 JavaScript Full-Stack Bootcamp начнется в конце марта 2021 года. Не упустите эту возможность, подпишитесь на лист ожидания!

Больше руководств по узлам:


К сожалению, запрошенная страница не найдена.

Мы записали эту ошибку (404), чтобы помочь нам исправить проблему.
Вы можете попробовать еще раз, используя один из инструментов ниже.
Вернуться на предыдущую страницу
Карта сайта
Индекс продукта
Индекс загрузки программного обеспечения
Чтобы найти для вашей страницы, попробуйте нашу функцию поиска.
AllTechnology NetworkPartnerNetwork (только общедоступная) Видео и мультимедиа Уточнить поиск

RSS | Юридические уведомления и условия использования | Заявление о конфиденциальности

Использование React с элементом Canvas

У нас есть React, который помогает нам работать с массивным изменяемым DOM в приятном неизменяемом функциональном стиле.Это замечательно.

Но я хотел бы описать способ использования React, который поможет вам работать с изменяемым объектным представлением «неизменяемого» элемента . Да, это странно звучит. Но это действительно хорошо работает.

Мотивация

Я часто использую элемент . Я сделал несколько сложных приложений, которые используют в качестве компонента основного представления. Ванильный холст без каких-либо фреймворков / библиотек может быть действительно сложным для сложных приложений.Поэтому я начал много использовать фреймворки холста. Сейчас я поддерживаю Konva 2d Canvas Framework.

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

Собственный холст внутри React

Очень легко получить доступ к контексту в компоненте React и нарисовать любую графику:

  Класс CanvasComponent расширяет React.Компонент {
    componentDidMount () {
        this.updateCanvas ();
    }
    updateCanvas () {
        const ctx = this.refs.canvas.getContext ('2d');
        ctx.fillRect (0,0, 100, 100);
    }
    оказывать() {
        возвращаться (
            
        );
    }
}
ReactDOM.render (, document.getElementById ('контейнер'));  

Демо: http://jsbin.com/xituko/edit?js,output

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

 
function rect (props) {
    const {ctx, x, y, ширина, высота} = props;
    ctx.fillRect (x, y, ширина, высота);
}
class CanvasComponent расширяет React.Component {
    componentDidMount () {
        this.updateCanvas ();
    }
    componentDidUpdate () {
        this.updateCanvas ();
    }
    updateCanvas () {
        const ctx = this.refs.canvas.getContext ('2d');
        ctx.clearRect (0,0, 300, 300);
        
        rect ({ctx, x: 10, y: 10, ширина: 50, высота: 50});
        rect ({ctx, x: 110, y: 110, ширина: 50, высота: 50});
    }
    оказывать() {
         возвращаться (
             
         );
    }
}
ReactDOM.render (, document.getElementById ('контейнер'));  

А как насчет методов жизненного цикла React (например, shouldComponentUpdate и т. Д.) И «всего представления внутри функции рендеринга»?

Реализация

Мне очень нравится подход React для создания приложений.Поэтому я сделал привязку реакции к объектам Konva . И теперь я могу нарисовать сцену холста с различными графическими фигурами и использовать ее в своем приложении React.

  npm install react konva react-konva --save  

Затем

  импортировать React из react;
импортировать ReactDOM из react-dom;
импортировать {Layer, Rect, Stage, Group} из «react-konva»;
 
class MyRect расширяет React.Component {
    constructor (... args) {
      супер (... аргументы);
      this.state = {
        цвет: 'зеленый'
      };
      это.handleClick = this.handleClick.bind (это);
    }
    handleClick () {
      this.setState ({
        цвет: Konva.Util.getRandomColor ()
      });
    }
    оказывать() {
        возвращаться (
            
        );
    }
}
function App () {
    возвращаться (
      <Ширина сцены = {700} высота = {700}>
        <Слой>
            
        
      
    );
}
ReactDOM.render (, document.getElementById ('контейнер'));  

Демо: http://jsbin.com/camene/8/edit?html,js,output

Спасибо https://github.com/reactjs/react-art за предоставление хороших примеров пользовательских компонентов React.

Сравнения

реагировать-конва против реагировать-холст

react-canvas — это совершенно другой плагин для реагирования. Он позволяет очень эффективно рисовать DOM-подобные объекты (изображения, тексты) на элементе холста. Это НЕ про рисование графики, но react-konva как раз для рисования сложной графики на элементе из React.

react-konva vs react-art

react-art позволяет рисовать графику на странице. Он также поддерживает SVG для вывода. Но он не поддерживает события форм.

реакция-конва против ванильного холста

«Производительность» — одно из самых модных словечек в реакции на хайп.

Я сделал этот плагин не из соображений производительности. Использование vanilla должно быть более производительным, потому что при использовании react-konva у вас есть фреймворк Konva поверх и React поверх Konva.Но я сделал этот плагин, чтобы бороться со сложностью приложения. Konva здесь очень помогает (особенно когда вам нужны события для объектов на холсте, такие как «щелчок» по фигуре, это действительно сложно сделать с ванильным холстом). Но React помогает здесь гораздо больше, поскольку обеспечивает очень хорошую структуру для вашей кодовой базы и потока данных.

Характеристики

react-konva работает поверх Konva , поэтому он поддерживает все основные формы: Circle , Rect , Ellipse , Line , Sprite , Image , Text , TextPath , Star , Ring , Arc , Label , SVG Path , RegularPolygon , Arrow и вы можете создавать свои собственные пользовательские формы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *