![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Bmp... вопрос...
Smoker © (2003-11-17 17:18:00)Братья по разуму, подскажите как лучше реализвать идею :
Входные данные >>> Bmp файл
Выходные данные >>> x,y - "место" пиксела
с - цвет пиксела
Fenik (2003-11-22 22:39:00) [1]Bitmap.LoadFromFile
var
p: pByteArray;
for y := 0 to Bitmap.Height - 1 do begin
p := Bitmap.ScanLine[y];
for x := 0 to Bitmap.Width - 1 do begin
[x, y] - место
p[x*3] - синий
p[x*3+1] - зелёный
p[x*3+2] - красный
RGB(p[x*3+2], p[x*3+1], p[x*3]) - цвет.
end;
end;
Smoker (2003-11-17 18:23:00) [2]2 BlackTiger >>> Применяется для всей картинки...
Спасибо за ответы, но как мне программно загрузить изображение
и "отсканировать" его ?
Т.е. приложение берёт bmp -> сканирует -> выдаёт все пикселы с
параметрами...
Pa5ha (2003-11-17 17:49:00) [3]->Прошу заметить: х,у:word;//т.к.баита маловато будет(255).
->с:word(16 bit) или Longword(32 bit) - так проще работать.
BlackTiger (2003-11-17 17:28:00) [4]Для какого-то конкретного пикселя? Или всю картинку "разложить"?
Маленькое замечание.
x,y : byte - "место" пиксела
с : array[4] of byte - цвет пиксела для 32битного цвета (если нужно работать с каждой составляющей отдельно).
или
c : integer - если нужен цвет целиком.
Имхо, можно читать bmp просто как поток байтов, выкидывая заголовочную информацию. Короче нужно описание заголовка. А потом - бери больше, кидай дальше.