Helpers - компьютеры, интернет, программирование

Используйте drawImage для рисования пиксельных данных на холсте

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

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

var ctx = {
    display: document.querySelector('canvas#display').getContext('2d'),
    convert: document.querySelector('canvas#convert').getContext('2d')
}

var image_data = THE_IMAGE_DATA_THAT_I_ALREADY_HAVE;

ctx.convert.putImageData(image_data, 0, 0);

var image_data_URL = ctx.convert.canvas.toDataURL('image/png');
var converter_image = document.querySelector('img#converter-image');

converter_image.onload = function () {
    ctx.display.save();
    ctx.display.beginPath();
    ctx.display.arc(320, 240, 240, 0, Math.PI*2, true);
    ctx.display.clip();
    ctx.display.drawImage(converter_image, 0, 0, 640, 480);
    ctx.display.restore();
}
converter_image.src = image_data_URL;

Однако это дает ДЕЙСТВИТЕЛЬНО плохую производительность, тем более что я хочу сделать это 60/сек.

Должен быть другой путь, верно?

01.10.2012

Ответы:


1

Обходной путь будет заключаться в том, чтобы нарисовать ваш пиксель, используя getImageData / putImageData на закадровом холсте, а затем отрисовав закадровый холст обратно на свой холст.

Больше информации:

Холст за кадром

Пиксельный рисунок с putImagedata (нажмите на пустое место в верхней части кода, чтобы запустить его)

01.10.2012
  • Этот ответ бесполезен без ссылок 08.04.2014
  • Здесь он представлен простым текстом pierreloicdoulcet.fr/parisjs/#/18 (вы также можете нажмите на нее) 09.04.2014
  • Новые материалы

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

    Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
    Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

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

    Анимированный математический анализ
    Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

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

    Создание базы данных с помощью супергероя «Python»
    В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

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