есть ли способ выбрать область на холсте по цвету и обрезать ее? Я хочу иметь возможность обрезать неопределенную площадь, что единственное, что общего между всеми пикселями, это то, что все они имеют одинаковый цвет. Благодарность
Вопрос
Холст html5: отсечение по цвету
- Что вы подразумеваете под clip этим? Loktar 08.09.2011
Ответы
Ответ 1 · рейтинг 4 · Loktar
Ниже приведен способ выбора цвета... и делайте с ним все, что хотите. Я передаю цвет, который хочу найти, перебирая каждый пиксель и удаляя соответствующий цвет, поскольку я не уверен, что вы имели в виду под отсечением, я предположил, что вы имеете в виду удаление. Однако учтите, что для больших изображений этот метод будет медленным.
// Takes an array with 3 color components, rgb
function removeColor(color){
var canvasData = ctx.getImageData(0, 0, 256, 256),
pix = canvasData.data;
for (var i = 0, n = pix.length; i <n; i += 4) {
if(pix[i] === color[0] && pix[i+1] === color[1] && pix[i+2] === color[2]){
pix[i+3] = 0;
}
}
ctx.putImageData(canvasData, 0, 0);
}
removeColor([0,0,255]); // Removes blue.
И, как указал Саймон, приведенный выше код получит точный цвет. Ниже будет получен приблизительный цвет, что хорошо, если у вас есть цвета, перекрывающиеся или очень близкие друг к другу.
Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.
Похожие материалы
- Maker.Js для станков с ЧПУ и лазерных станков
- Повысьте производительность JavaScript с помощью OffscreenCanvas
- Учебник по HTML Canvas - Создание 2D-частиц и управление ими
- Точные прогнозы машинного обучения без кода для многоклассовой классификации | Холст Amazon SageMaker
- Как конвертировать HTML в PDF с помощью jsPDF
- Как конвертировать HTML в PDF с помощью JavaScript