Форум программистов, компьютерный форум, киберфорум
JavaScript: HTML5 Canvas
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 18.09.2013
Сообщений: 9

Неверные цвета пикселей в canvas

01.03.2015, 20:01. Показов 1127. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Перечитал кучу примеров "как узнать цвет пикселя в canvas". Но то ли я дурак (что скорее всего), то ли...
В коде я сначала заливаю весь canvas синим, потом рисую на нем картинку. При нажатие на canvas выводится сообщение с цветом пикселя. Но какую бы картинку я не залил, вывод 0,0,255. Если не залить цветом, то 0,0,0.
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript">
        function Draw(){
            var canvas=document.getElementById("can");
            var ctx=canvas.getContext("2d");
            ctx.fillStyle='#00f';
            ctx.fillRect(0,0,200,200);
            var image=new Image();
            image.src="./img.bmp";
            image.onload=function(){
                ctx.drawImage(image,0,0);
            }
            var img_data=ctx.getImageData(0,0,200,200);
            canvas.onclick=function(e){
                var x=e.offsetX;
                var y=e.offsetY;
                var pix=img_data.data;
                var i=((y*200)+x)*4;
                var R=pix[i];
                var G=pix[i+1];
                var B=pix[i+2];
                var rgb=R+','+G+','+B;
                alert(rgb);
            }
        }
        </script>
    </head>
    <body>
        <canvas id="can" height="200" width="200"></canvas>
        <input type="button" value="Start" onclick="Draw()"></input>
    </body>
</html>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.03.2015, 20:01
Ответы с готовыми решениями:

Canvas mousemove пропуск пикселей
&lt;canvas id=&quot;games&quot;&gt;&lt;/canvas&gt; &lt;script&gt; /*function changes() { sw = window.innerWidth; sh = window.innerHeight; ...

Размеры пикселей canvas
подскажите, как задать длину и ширину для пикселей? Например хочу задать границы, ширину и высоту канваса = 10 пикселей, где каждый пиксель...

Текстура имеет неверные цвета + кривая привязка
Прив. Загружаю картинку и накладываю её на прямоугольничек. И текстурка ложится не совсем верно, буд-то съезжает влево по горизонтали, и...

1
Superposition
 Аватар для Padimanskas
950 / 615 / 256
Регистрация: 27.10.2013
Сообщений: 2,083
01.03.2015, 22:13
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body style="margin:0; pading:0;">
        <canvas id="can" height="200" width="200" style="display:block; margin:0 auto;"></canvas>
    <script>
        window.onload = function () {
            var canvas,ctx,rect,x,y,data,color,image;
            canvas = document.getElementById('can');
            ctx = canvas.getContext('2d');
            ctx.fillStyle = '#00f';
            ctx.fillRect(0, 0, 200, 200);
            image = new Image();
            image.src = "./img.bmp";
            image.onload = function () {
                ctx.drawImage(image, 0, 0);
                canvas.onmousemove = function (e) {
                    ctx.clearRect(0, 0, 200, 200);
                    ctx.drawImage(image, 0, 0);
                    rect = canvas.getBoundingClientRect();
                    x = e.clientX - rect.left;
                    y = e.clientY - rect.top;
                    data = ctx.getImageData(x, y, 1, 1).data;
                    color = '#' + data[0].toString(16) + '' + data[1].toString(16) + '' + data[2].toString(16);
                    ctx.fillStyle = color;
                    ctx.fillText(color, 0, 30);
                };
            };
        };
    </script>
</body>
</html>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.03.2015, 22:13
Помогаю со студенческими работами здесь

Пропуск пикселей при рисовании на canvas
Здравствуйте. Проблема такая: есть изображение - и такой код в xe7 - Graphics::TBitmap *gradient = new...

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

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

Определение цвета пикселей на экране
Тут миллион тем уж создано по этому вопросу но у меня не работает. Нужно определить прямоугольник из пикселей размером 3х2 цвет в...

Рандомные цвета пикселей в Lazarus
Не могу понять,как мне сделать так,что бы в процедуре button2mousedown цвет пикселей выбирался рандомный и переходил в процедуру rinkis? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru