Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
1

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

10.04.2013, 07:19. Просмотров 5867. Ответов 44
Метки нет (Все метки)

Допустим, я загрузил картинку в PictureBox1. как можно узнать цвет определенного пикселя на этой картинке? Формат изображения: png)Разрешение: 100х100.
Помогите пожалуйста)
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2013, 07:19
Ответы с готовыми решениями:

Можно ли менять цвет не каждого пикселя, а глобально для всей картинки?
Хочу сделать в визуальном интерфейсе приблуду, скролы позволяющие менять цвет интерфейса по RGB. С...

Как получить цвет пикселя из BMP файла
Можно как-нибудь получить цвет определённого пикселя BMP файла и узнать разрешение файла.

Узнать цвет пикселя по координатам x y в картинке .png
Есть картинка в формате .png как мне можно узнать цвет пикселя по координатам x y ? Желательно...

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

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

44
Апострофф
Заблокирован
10.04.2013, 07:57 2
Распознание цвета в picturebox

В VB1..6 (а данный раздел именно для них) Picture1 не распознаёт формат PNG, поэтому или уточните раздел для темы, или используйте BMP, JPG, GIF, ICO, WMF, CUR форматы.
1
Catstail
Модератор
24932 / 12652 / 2316
Регистрация: 12.02.2012
Сообщений: 20,610
10.04.2013, 14:11 3
Вообще-то цвет возвращает метод Point (x,y). Возвращает, естественно, как длинное целое (RGB)
0
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 16:35  [ТС] 4
Ну если я изменю формат?тогда возможно?
0
10.04.2013, 16:35
locm
10.04.2013, 16:44
  #5

Не по теме:

Вам же вроде было нужно на QB? Получение цвета пиксела загруженного изображения

0
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 16:51  [ТС] 6
В QBasic, нельзя открывать картинку(
0
Апострофф
Заблокирован
10.04.2013, 16:55 7
Как преобразовать рисунок из "png" в "bmp" или в "jpg"? - конвертер PNG
0
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 17:02  [ТС] 8
Спасбо, а теперь можно в Visual Basic узнать какого цвета окрашен пиксель?
0
locm
2277 / 993 / 126
Регистрация: 28.10.2011
Сообщений: 3,357
Записей в блоге: 6
10.04.2013, 17:06 9

Не по теме:

Цитата Сообщение от arsen1101995 Посмотреть сообщение
В QBasic, нельзя открывать картинку(
Может тогда лучше объясните что вам нужно сделать?
Ведь диалекты сильно отличаются.



Цитата Сообщение от arsen1101995 Посмотреть сообщение
Допустим, я загрузил картинку в PictureBox1. как можно узнать цвет определенного пикселя на этой картинке?
Если нужно узнать цвет пикселя, то зачем его загружать в контрол? Можно же загрузить в память и определить цвет требуемого пикселя. Это куда рациональнее в плане ресурсов компа и скорости обработки данных.
0
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 17:31  [ТС] 10
А если не сложно, можете рассказать про "Загрузить в память и определить цвет требуемого пикселя"..Пожалуйста)
0
locm
10.04.2013, 17:36
  #11

Не по теме:

Цитата Сообщение от arsen1101995 Посмотреть сообщение
можете рассказать про "Загрузить в память....
Я не программирую на VB (всего лишь написал об более рациональном способе, который я бы использовал в такой ситуации). Так что извините.

Хотя могу написать DLL с требуемым вам функционалом (за символическую плату), которую сможете загрузить из VB.

0
Catstail
Модератор
24932 / 12652 / 2316
Регистрация: 12.02.2012
Сообщений: 20,610
10.04.2013, 18:22 12
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Да зачем загружать в память?.. Все проще (1 строчка кода). Проект и картинка прилагаются.
1
Миниатюры
Как можно узнать цвет определенного пикселя на картинке?  
Вложения
Тип файла: zip t062.zip (137.5 Кб, 95 просмотров)
The trick
Модератор
8088 / 2804 / 776
Регистрация: 22.02.2013
Сообщений: 3,953
Записей в блоге: 77
10.04.2013, 18:24 13
Лучший ответ Сообщение было отмечено The trick как решение

Решение

Можно через GDI+
Visual Basic
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
Private Type GdiplusStartupInput
    GdiplusVersion As Long
    DebugEventCallback As Long
    SuppressBackgroundThread As Long
    SuppressExternalCodecs As Long
End Type
Private Type COLORBYTES
   BlueByte As Byte
   GreenByte As Byte
   RedByte As Byte
   AlphaByte As Byte
End Type
Private Declare Function GdiplusStartup Lib "gdiplus" (token As Long, inputbuf As GdiplusStartupInput, Optional ByVal outputbuf As Long = 0) As Long
Private Declare Sub GdiplusShutdown Lib "gdiplus" (ByVal token As Long)
Private Declare Function GdipLoadImageFromFile Lib "gdiplus" (ByVal FileName As String, image As Long) As Long
Private Declare Function GdipBitmapGetPixel Lib "gdiplus" (ByVal Bitmap As Long, ByVal X As Long, ByVal Y As Long, color As Long) As Long
Private Declare Function GdipDisposeImage Lib "gdiplus" (ByVal image As Long) As Long
Private Declare Function GetMem4 Lib "msvbvm60" (pSrc As Any, pDst As Any) As Long
 
Dim GpInput As GdiplusStartupInput
Dim token As Long
 
Private Sub Form_Load()
    Dim Pic As Long, Col As Long
    Dim Comp As COLORBYTES
    GpInput.GdiplusVersion = 1
    GdiplusStartup token, GpInput
    GdipLoadImageFromFile StrConv("Путь к картинке", vbUnicode), Pic
    GdipBitmapGetPixel Pic, 10, 10, Col
    GdipDisposeImage Pic
    GdiplusShutdown token
    GetMem4 Col, Comp
End Sub
2
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 20:47  [ТС] 14
Извините, а вы не могли бы мне подсказать, что такое GDI+???

Добавлено через 11 минут
А как программно изменить формат картинки?
Мне там скинули какой-то DLL, но я не понял там ничего.
0
locm
2277 / 993 / 126
Регистрация: 28.10.2011
Сообщений: 3,357
Записей в блоге: 6
10.04.2013, 21:00 15
Цитата Сообщение от arsen1101995 Посмотреть сообщение
Мне там скинули какой-то DLL
Та DLL конвертирует рисунок PNG формата, в BMP или в JPG формат, который можно открыть в VB.
0
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 21:05  [ТС] 16
А как им воспользоваться?
0
locm
2277 / 993 / 126
Регистрация: 28.10.2011
Сообщений: 3,357
Записей в блоге: 6
10.04.2013, 21:17 17
Чем? Рисунком? Написано же.
DLLка (всего 12 строк кода), конвертирующая PNG в BMP.
Из нее экспортируется функция, с именем PngToBmp. Функции следует передать полный путь к PNG рисунку и в той же папке будет создан рисунок с аналогичным именем, BMP формата. Если функция отработала нормально, то результат будет не нулевой.
Нужно вызвать функцию PngToBmp(File.s) из DLL, передав функции путь к PNG картинке и в той же папке появится картинка с тем же именем, но с расширением BMP. Ее можно загрузить из VB-проги.
0
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 21:23  [ТС] 18
А как функцию вызвать?
0
Pro_grammer
Модератор
6246 / 2338 / 454
Регистрация: 24.04.2011
Сообщений: 4,172
Записей в блоге: 10
10.04.2013, 21:24 19
Цитата Сообщение от arsen1101995 Посмотреть сообщение
что такое GDI+???
Это системная библиотека для работы с графикой. Ни какие лишние DLL тебе в проект не нужны, VB нормально работает с тем, что уже есть в любой системе. Вот проект, который работает с PNG определяет цвет пикселя под курсором ( по принципу как у Catstail- всего 1 строчка)
0
Вложения
Тип файла: zip png.zip (36.4 Кб, 41 просмотров)
arsen1101995
0 / 0 / 0
Регистрация: 07.03.2013
Сообщений: 327
10.04.2013, 21:36  [ТС] 20
Спасибо, а как теперь можно сделать такую вещь, чтобы, например, если у нас будет цвет кода &HFF0000, то он будет выдавать в Label2 цифру 1..?
0
10.04.2013, 21:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2013, 21:36

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

Как узнать цвет пикселя изображения?
Что нужно использовать, чтобы узнать цвет конкретного(зная его координаты) пикселя изображения?

Как узнать цвет пикселя на форме
СПАСИБО


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.