Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-1133273376
sedot
2005-11-29 17:09
2005.12.25
Как снять защиту SSL-протокола?


14-1133597294
psa247
2005-12-03 11:08
2005.12.25
Константы Server 2003 !


1-1133334608
kot1110
2005-11-30 10:10
2005.12.25
Unit тесты


2-1133954653
Id
2005-12-07 14:24
2005.12.25
IBDataSet.


3-1131004093
AlexTer
2005-11-03 10:48
2005.12.25
Отчет с перекрестной таблицей