Форум программистов, компьютерный форум, киберфорум
Наши страницы
Алгоритмы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
Wolfik_s_b
0 / 0 / 1
Регистрация: 09.03.2011
Сообщений: 6
1

Алгоритм получения значения RGB каждого пикселя картинки

09.03.2011, 21:04. Просмотров 2702. Ответов 6
Метки нет (Все метки)

Имеется произвольная цветная картинка на компе.Каким образом вытянуть из нее значения RGB каждого пикселя для последующей обработки на borland С?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2011, 21:04
Ответы с готовыми решениями:

Как получить значения RGB из пикселя картинки .bmp С++
Здравствуйте. Мне нужна функция, которая считает с каждого пикселя картинки в формате .bmp его...

Вывод компонент RGB для каждого пикселя
Всем привет, не подскажите, как выводить информацию о компонентах RGB для каждого пикселя при...

Получить цвет каждого пикселя изображения, разбив на уровни RGB
Нужно получить цвет каждого пикселя изображения, разбив на уровни RGB. Как реализовать подобное?

Вывести значения RGB какого либо пикселя с изображения
Добрый день, не могли вы мне помочь? Как вывести значения RGB какого либо пикселя с изображения,...

Вывести значения RGB какого либо пикселя с изображения
Здравствуйте, помогите пожалуйста.Мне нужны значения RGB какого-либо пикселя с изображения, все...

6
freest
Українець
423 / 317 / 16
Регистрация: 26.09.2009
Сообщений: 844
09.03.2011, 21:54 2
все зависит от формата
0
Wolfik_s_b
0 / 0 / 1
Регистрация: 09.03.2011
Сообщений: 6
10.03.2011, 09:56  [ТС] 3
ну например для формата jpg
0
Wolfik_s_b
0 / 0 / 1
Регистрация: 09.03.2011
Сообщений: 6
14.03.2011, 01:33  [ТС] 4
ну хоть для любого формата подскажите.Кто про какой знает.
0
freest
Українець
423 / 317 / 16
Регистрация: 26.09.2009
Сообщений: 844
14.03.2011, 02:23 5
BitMap
Файлы образов фрагментов экрана.

Данные для построения фрагментов, особенно, если их много, не всегда удобно хранить в виде констант или получать алгоритмическим путем.
Проще их записывать в файл, считывать в память и отражать на видимой или активной странице в нужный момент. Такие файлы в большинстве случаев состоят из двух частей заголовка и данных:
–заголовок содержит размеры фрагмента по вертикали и горизонтали;
–данные характеризуют каждый пиксель фрагмента.
Ввести в файл данные непосредственно с экрана можно с помощью функции GetPixel, восстановление фрагмента на экран осуществляется процедурой PutPixel.

Более быстрый метод работы с файлами базируется на использовании процедур GetImage и PutImage.
Алгоритм отображения образа фрагмента в файл состоит из таких шагов:
–вывести изображение на экран;
–выделить подлежащий хранению прямоугольный фрагмент;
–вычислить его размер в байтах;
–занести в Heap области полный образ фрагмента;
–записать образ фрагмента из Heap области в файл.

Алгоритм вывода фрагмента в любом месте экрана:

–считать данные из файла в Heap область;
–вывести образ на активную или видимую страницу.

АППАРАТНО НЕЗАВИСИМЫЙ Bitmap Microsoft Windows.

ВМР –файлы.
Преимущества
Хорошо поддерживается под Microsoft Windows. Редкая поддерж¬ка для Bitmap изображений.
Недостатки
Плохо поддерживается где-либо еще.
Описание
Файлы аппаратно независимого Bitmap Microsoft Windows могут содержать изображения с 1, 4, 8, или 24 битами на пиксель. 1-, 4- и 8-битные изображения имеют карты цветов, тогда как 24-битные изображения имеют непосредственную цветопередачу.

Детали формата
Каждый файл содержит заголовок файла, заголовок Bitmap, карту цветов (если изо¬бражение не 24-битное) и собственно изображение.

Заголовок файла

Смещение Размер Имя Описание
0 2 bfТуре ASСП-строка "ВМ"
2 4 bfSizе Размер файла в байтах
6 2 bfReserved1 Ноль
8 2 bfReserved2 Ноль
10 4 bfoffBits Смещение начала изображения байтах в файле

Поле bfOffBits содержит расстояние в байтах начала изображения от начала файла, чтобы облегчить пропуск заголовка.

Заголовок Bitmap Windows

За заголовком файла следует заголовок Bitmap и, необязательно, карта цветов. Структура заголовка иногда Bitmap рассматривается как Bitmapinfo с полями вплоть до карты цветов.
Смещ. Размер Имя Описание
14 4 biSize Размер этого заголовка, 40 байт
18 4 biWidth Ширина изображения в пикселях
22 4 biHeight Высота изображения в пикселях
26 2 biPlanes Число плоскостей изображения
28 2 biBitCount Бит на пиксель, 1, 4, 8 или 24
30 4 biCompression Тип сжатия
34 4 biSizeImage Размер сжатого изображения
38 4 biXPelsPerMeter Горизонтальное разрешение
42 4 biXPelsPerMeter Вертикальное разрешение
46 4 biClrUsed Количество используемых цветов,
50 4 biClrImportant Число "важных" цветов
54 4*N bmiColors Карты цветов

Карта цветов
Изображения, использующие 1, 4 или 8 бит на пиксель должны иметь карту цветов. Размеры карты цветов - обычно 2, 16 или 256 элементов данных соответственно, но может быть меньше, если изо¬бражение не нуждается в полном комплекте цветов. Если поле biClrUsed ненулевое, оно содержит количество используемых цветов, которое также представляет собой число элементов данных в карте цветов. Если это поле - нулевое, карта цветов имеет полный размер. Для 24-битных изображений карты цветов отсутствует, и изображение содержит непосредственные RGB цвета. Поскольку возможно, что устройство отображения не будет иметь столько доступных цветов, сколько требуется для изображения, эле¬менты данных в карте цветов должны начинаться с наиболее важ¬ных цветов.
Элементы данных Карты цветов содержат четыре байта каждый.

Элемент карты цветов
Смещ. Имя Описание
0 Blue Значение синего для элемента карты цветов
1 Green Значение зеленого для элемента карты цветов
2 Red Значение красного для элемента карты цветов
3 Reserved Ноль


Данные Bitmap следуют сразу за картой цветов.
1
freest
Українець
423 / 317 / 16
Регистрация: 26.09.2009
Сообщений: 844
20.03.2011, 00:50 6
Pascal
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
{вьюер бмп256;}
program bmp256view;
uses crt,graph;
{=========================================================== ================
}
type
bmpinfo=record
sign1,sign2:char; { BM}
size :longint; {размер файла}
reserved :longint; {rezerv}
offset :longint ; {смещение данных}
b: longint;
width : longint; {ширина спрайта}
Height:longint; {высота спрайта}
plans:word;
bits: word;
end;
{=========================================================== ================
}
var
f:file of byte;
fi:file of bmpinfo;
info:bmpinfo;
i,j:integer;
s:string[40];
c:byte;
r,g,b,n:byte;
x,y:integer;
{=========================================================== ================
}
procedure init;
begin
i:=installuserdriver('svga256m.bgi',nil);
j:=2;
initgraph(i,j,''); {инициализация графики}
end;
{=========================================================== ================
=}
begin
s:='XYZ.BMP'; {GENM}
if s='' then
begin
write ('введи путь: ');
read (s);
end;
assign (fi,s);
reset (fi);
read (fi,info);
close(fi);
assign (f,s);
reset (f);
init;
seek(f,1024);
for i:=0 to 255 do
begin
    read(f,n,r,g,b);
    SetRGBPalette(n,r,g,b);
end;
seek (f,1078);
for y:=1 to info.height do
for x:=1 to info.width do
begin
read (f,c);
putpixel(round((640/info.width)*x),480-round((480/info.height)*y),c);
end;
repeat until keypressed;
closegraph;
end.
1
iama
1329 / 980 / 119
Регистрация: 30.07.2010
Сообщений: 5,297
20.03.2011, 16:18 7
GetRValue, GetGValue, GetBValue

Добавлено через 32 минуты
что за олигофрен мне проминусовал? отпишись, побеседуем
0
20.03.2011, 16:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2011, 16:18

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

Алгоритм получения значения из таблицы
Здравствуйте. Есть таблица значений, сверху расположена температура, слева плотность, то есть нужно...

Лучший алгоритм для получения уникального значения
Что лучше md5(time()) или mt_rand(100000000000, 9999999999999) и каков шанс совпадения при...


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

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

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