Получить пиксельный цвет изображения
У меня есть изображение в браузере.
Я хочу получить верхний левый пиксель цвета изображения (в координатах: 0,0), независимо от того, поворачивается ли изображение или нет.
Как я могу это сделать, используя javascript или php-код?
Ответы
Ответ 1
- Создать холст document.createElement
- Получить 2d-контекст
canvas.getContext('2d')
- Нарисуйте изображение на холсте
context.drawImage(image, x, y)
- Убедитесь, что изображение находится в том же домене или у вас не будет доступа к его пикселам.
- Получить данные пикселя для изображения
context.getImageData(x1, y1, x2, y2)
- Вам нужен только левый верх, поэтому
context.getImageData(0, 0, 1, 1)
- Результат getImageData будет содержать в нем массив пикселей
data
поле (context.getImageData(0,0,1,1).data
)
- Массив будет иметь значения
r
, g
, b
и a
.
Ответ 2
Для изображения в браузере вы не можете использовать PHP, если вы не можете перенести изображение на сервер.
n в браузере, если вы можете нарисовать изображение в canvas
, вы можете использовать метод getImageData()
:
var myImg = new Image();
myImg.src = 'image.jpg';
var context = document.getElementById('canvas').getContext('2d');
context.drawImage(myImg, 0, 0);
data = context.getImageData(x, y, 1, 1).data;
Вам нужно будет разрешить любое вращение - возможно, вы знаете, какое вращение было применено.