![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как увеличить скорость??? [D5]
AM © (2002-09-26 13:50:00)Я новичок в графике... и передомной стоит задача:
Есть файл BMP. Надо определить координату самой левой точки имеющий допустим какой-то конкретный цвет, допустим clRed.
Я делаю:
BtMap:= TBitmap.Create;
BtMap.LoadFromFile(Form7.OpenPictureDialog1.FileName);
H:= BitMap.Height;
W:= BitMap.Width;
For i:= 1 to W do
Begin
For j:= 1 to H do
Begin
If Bitmap.Canvas.Pixels[i, j] = clRed then
Begin
ShowMessage("x = " + IntToStr(i) + " y = " + IntToStr(j));
Exit;
End;
End;
End;
А есть ли другой способ кроме как перебирать поочереди все пиксели слева на право и проверять на цвет. Файлы большие 2500 X 2500.
Есть ли другой подход?
Можно ли получить сразу массив точек имеющий цвет clRed?
AM (2002-09-26 14:22:00) [1]Не очень утешительно...
Большое спасибо за ответ!
MBo (2002-09-26 13:53:00) [2]1. Циклы от 0 до W-1 и H-1
2. Намного быстрее работать со ScanLine
>Можно ли получить сразу массив точек имеющий цвет clRed
нет