Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/29: Рейтинг темы: голосов - 29, средняя оценка - 4.62
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
1

Как в обьекте canvas определить цвет пикселя с заданными координатами

28.01.2014, 14:48. Показов 5920. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
как в обьекте canvas определить цвет пикселя с заданными координатами? Или может существует обьект экран и через него можно определить цвет.

Добавлено через 1 час 30 минут
Цитата Сообщение от ASDFD12 Посмотреть сообщение
как в обьекте canvas определить цвет пикселя с заданными координатами? Или может существует обьект экран и через него можно определить цвет.
Пытался для обьекта наследующего SurfaceView вызывать this.getDrawingCache(true).getPixel(312,300); - выкинуло ошибку - получается Cache отсутствует
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2014, 14:48
Ответы с готовыми решениями:

Как получить цвет пикселя в JavaFx Canvas
Собственно вопрос, как получить цвет одного пикселя из GraphicsContext. Такая простая вещь, а не...

Не получается получить цвет пикселя в canvas используя getImageData
Проблему удалось кратко описать в заголовке, тут я распишу её более подробней, есть вот такой код:...

Как определить цвет пикселя?
Нужно определить цвет пикселя на рисунке . Как это сделать? В паскале была функция GetColor , а в...

Функция, которая возвращает цвет пикселя в точке с координатами х, у
Доброго времени суток. Уважаемые программисты, подскажите пожалуйста, есть ли в Visual Studio С++...

16
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
28.01.2014, 16:16 2
http://developer.alexanderklim... epaint.php
1
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
28.01.2014, 16:27  [ТС] 3
Цитата Сообщение от kirawa Посмотреть сообщение
Статейка полезная, но ответа на мой вопрос там нет. Именно через canvas я и рисую в своей игре, но как узнать цвет пикселя на экране, или с самого экрана или с canvas?
0
35 / 35 / 2
Регистрация: 12.11.2013
Сообщений: 345
28.01.2014, 16:34 4
http://lmgtfy.com/?q=canvas+ge... or+android
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
28.01.2014, 16:56  [ТС] 5
Цитата Сообщение от kirawa Посмотреть сообщение
В классе обьявил
Java
1
Bitmap bitmap;
В конструкторе указал
Java
1
 this.setDrawingCacheEnabled(true);
В методе onDraw
Java
1
2
canvas.drawBitmap(fon, 0, 0, null);
this.bitmap=this.getDrawingCache();
В методе onTouchEvent()
Java
1
Log.d(tag,"color:"+this.bitmap.getPixel((int)e.getX(), (int)e.getY())) ;
Виводит постоянно : color:0
Что может біть не так?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 18:29 6
ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Добавлено через 7 минут
Для начала, можно так:
Java
1
2
3
4
5
6
7
8
    
 v_to_draw = (ImageView)findViewById(R.id.transparent);
        v_to_draw.setImageBitmap(BitmapFactory.decodeFile(path_to_res + "/img14.png"));
        int v_to_draw_w = width;
        int v_to_draw_h = height;
        bmp_to_draw = Bitmap.createBitmap(v_to_draw_w, v_to_draw_h, Bitmap.Config.ARGB_8888);
        canvas_to_draw = new Canvas(bmp_to_draw);
        ....
Добавлено через 5 минут
И кэш тревожить там не нужно.

Добавлено через 29 минут
...
0
349 / 240 / 34
Регистрация: 16.01.2010
Сообщений: 766
28.01.2014, 19:32 7
Не оно? http://stackoverflow.com/quest... in-android
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
28.01.2014, 19:42  [ТС] 8
мне нужно цвет пикселя получить с canvas,
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 19:59 9
ASDFD12, оно и получает у меня с канваса, точнее с того же битмапа, на котором рисую красные линии канвасом..
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
28.01.2014, 20:14  [ТС] 10
[QUOTE=MegaSinner;5706128]ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Что ты имеешь ввиду, можешь обьяснить почему мой пример не работает?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
28.01.2014, 20:15 11
ASDFD12, у тебя, похоже, битмап вообще не связан с канвасом.
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
28.01.2014, 21:38  [ТС] 12
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, у тебя, похоже, битмап вообще не связан с канвасом.
Я понял.
Я что-то думал, что getDrawindCache() применяется для canvas.
Куда тогда записывается canvas после отображения, и есть ли слои в canvas? Тоесть когда при следующем выводе canvas его содержимое будет полупрозрачным, то будет видно как предыдущее изображение так и выводимое. Меня интересует в этот момент содержимое canvas - это предыдущее + наложенное выводимое, или предыдущее хранится уже в другом обьекте, а выводимое в canvas?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.01.2014, 00:17 13
ASDFD12, нету там никаких слоев - есть полотно(битмап) и канвас рисует на нем, по этому нужно вовремя его очищать, чтобы не было наложения нового, на уже не нужное старое - в моем случае я перерисовую тот прозрачный PNG (обновляю битмап).
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
29.01.2014, 02:35  [ТС] 14
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, Битмап объяви паблическо-статическим и this там не нужно.
Java
1
if (bmp_to_draw.getPixel(x, y) == Color.RED)...
И ты, наверное, рисуешь не там, где нужно..

Добавлено через 7 минут
Для начала, можно так:
Java
1
2
3
4
5
6
7
8
    
 v_to_draw = (ImageView)findViewById(R.id.transparent);
        v_to_draw.setImageBitmap(BitmapFactory.decodeFile(path_to_res + "/img14.png"));
        int v_to_draw_w = width;
        int v_to_draw_h = height;
        bmp_to_draw = Bitmap.createBitmap(v_to_draw_w, v_to_draw_h, Bitmap.Config.ARGB_8888);
        canvas_to_draw = new Canvas(bmp_to_draw);
        ....
Добавлено через 5 минут
И кэш тревожить там не нужно.

Добавлено через 29 минут
...
Здесь строчка где вы создаете Canvas
Java
1
 canvas_to_draw = new Canvas(bmp_to_draw);
bmp_to_draw - и получается тот Bitmap на который происходит рисование?

Добавлено через 2 часа 5 минут
по умолчанию canvas рисует на Surface. Как тогда из Surface получить цвет пикселя?
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
29.01.2014, 10:19 15
Цитата Сообщение от ASDFD12 Посмотреть сообщение
bmp_to_draw - и получается тот Bitmap на который происходит рисование?
- да, он самый.
Цитата Сообщение от ASDFD12 Посмотреть сообщение
по умолчанию canvas рисует на Surface. Как тогда из Surface получить цвет пикселя?
- с сурфейса не знаю, но ничто тебе не мешает вместо него повесить тачлистенер на ImageView - результат тот же.
0
58 / 57 / 15
Регистрация: 15.09.2012
Сообщений: 557
29.01.2014, 21:28  [ТС] 16
Цитата Сообщение от MegaSinner Посмотреть сообщение
ASDFD12, нету там никаких слоев - есть полотно(битмап) и канвас рисует на нем, по этому нужно вовремя его очищать, чтобы не было наложения нового, на уже не нужное старое - в моем случае я перерисовую тот прозрачный PNG (обновляю битмап).
Если так, то как тогда работают графические фильтры, о которых вы говорили в моей теме "Ограничение движения персонажа". Я так понял, на нужный обьект накладывается фон, с заданым цветом и прозрачночстью 100%, мы видим обьект таким как нужно, а цвет там красный, как такое возможно без использование слоев (при рисовании на единственный Bitmap)?

Добавлено через 9 часов 36 минут
(_!_)
0
99 / 95 / 9
Регистрация: 09.04.2010
Сообщений: 746
30.01.2014, 00:07 17
ASDFD12, а я и не говорил, что без слоев или ты не так понял:
- нижние слои - графика игры (фон/персонажи).
- средний слой (невидимый) - маска.
- верхний слой (полностью прозрачный(ImageView)) - поверхность для касаний..
Еще вопросы?
0
30.01.2014, 00:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.01.2014, 00:07
Помогаю со студенческими работами здесь

Как определить цвет пикселя в координате?
Как определить цвет пикселя в координате на рабочем столе?

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

Как определить цвет пикселя на jpg картинке?
может кто знает как определить цвет пикселя...

Определить цвет пикселя
Привет всем! Есть такой вопрос: есть переменная char wr; так вот есть ли такая функция в языке С,...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru