Текущий архив: 2005.12.25;
Скачать: CL | DM;
Вниз
Работа с битовыми образами Найти похожие ветки
← →
De1uxe © (2005-12-12 13:55) [0]Уважаемые мастера помогите пожалуйста! Возникла необходимость заставить программу проверять битовый образ на наличие закрашенных черным цветом пикселей. А затем выдавать их(закрашеных пикселей) кооринаты. Как это осуществить?
← →
Игорь Шевченко © (2005-12-12 14:00) [1]GetPixel (Bitmap.Handle, X, Y) = 0 ?
← →
de1uxe © (2005-12-12 14:04) [2]А где указывается цвет?
← →
Игорь Шевченко © (2005-12-12 14:12) [3]
> А где указывается цвет?
0 - черный
← →
de1uxe © (2005-12-12 14:35) [4]Вот чего я набрал:
var
bitmap1: tbitmap;
i,q,x,y: integer;
z,c:string;
begin
bitmap1.Create;
bitmap1.LoadFromFile("c:\test1\1.bmp");
for i:=1 to bitmap1.Height do
begin
for q:=1 to bitmap1.Width do
begin
if getpixel(bitmap1.Handle, q,i)=0 then
begin
x:=q;
y:=i;
end;
end;
end;
z:=intTostr(x);
c:=intTostr(y);
label1.Caption:=("Координата Х:"+z+" Координата Y:"+c)
end;
но почему-то не работает. Кто подскажет почему? В указанной папке есть картинка 1.bmp на которой всего одна точка черного цвета.
← →
Leonid Troyanovsky © (2005-12-12 14:41) [5]
> de1uxe © (12.12.05 14:35) [4]
> Вот чего я набрал:
VCL Reference: ScanLine, Height example
--
Regards, LVT.
← →
MBo © (2005-12-12 14:44) [6]>for i:=1 to bitmap1.Height
от нуля до bitmap1.Height -1
и с шириной аналогично
← →
de1uxe © (2005-12-12 14:45) [7]Честно говоря непонял. Что такое
> VCL Reference: ScanLine, Height example
?
← →
de1uxe © (2005-12-12 14:51) [8]при нажатии на кнопку он выдает ошибку типа:
project project.exe raised exception class EAccessViolation with message...
← →
Leonid Troyanovsky © (2005-12-12 14:51) [9]
> de1uxe © (12.12.05 14:45) [7]
> Честно говоря непонял. Что такое
> > VCL Reference: ScanLine, Height example
F1 - Find - ScanLine, Height example.
--
Regards, LVT.
← →
De1uxe © (2005-12-12 15:20) [10]Вот чего я набрал:
var
bitmap1: tbitmap;
i,q,x,y: integer;
z,c:string;
begin
bitmap1.Create;
bitmap1.LoadFromFile("c:\test1\1.bmp");
for i:=1 to bitmap1.Height do
begin
for q:=1 to bitmap1.Width do
begin
if getpixel(bitmap1.Handle, q,i)=0 then
begin
x:=q;
y:=i;
end;
end;
end;
z:=intTostr(x);
c:=intTostr(y);
label1.Caption:=("Координата Х:"+z+" Координата Y:"+c)
end;
но почему-то не работает. Кто подскажет почему? В указанной папке есть картинка 1.bmp на которой всего одна точка черного цвета.
при нажатии на кнопку он выдает ошибку типа:
project project.exe raised exception class EAccessViolation with message...
← →
MBo © (2005-12-12 15:33) [11]>De1uxe
Ты читаешь, что тебе советуют?
← →
De1uxe © (2005-12-12 15:36) [12]Дело в том что у меня Help в delphi ужасный и я так ничего и не нашел там ничего по поводу ScanLine, Height example.
← →
Джо © (2005-12-12 15:39) [13]
> [12] De1uxe © (12.12.05 15:36)
> Дело в том что у меня Help в delphi ужасный и я так ничего
> и не нашел там ничего по поводу ScanLine, Height example.
Какой-такой "ужасный"? Его что, для тебя отдельно такой написали? ;)
ScanLine, Height example
procedure TForm1.Button1Click(Sender: TObject);
// This example shows drawing directly to the BitMap
var
x,y : Integer;
BitMap : TBitMap;
P : PByteArray;
begin
BitMap := TBitMap.create;
try
BitMap.LoadFromFile("C:\Program Files\Common Files\Borland Shared\Images\Splash\256color\factory.bmp");
for y := 0 to BitMap.Height -1 do
begin
P := BitMap.ScanLine[y];
for x := 0 to BitMap.Width -1 do
P[x] := y;
end;
Canvas.Draw(0,0,BitMap);
finally
BitMap.Free;
end;
end;
Страницы: 1 вся ветка
Текущий архив: 2005.12.25;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.045 c