Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

Поиск пикселя в картинке.   Найти похожие ветки 

 
worldmen   (2010-03-06 14:54) [0]

Ищу красный пиксель на копии части экрана. Копия делается с координатами левого верхнего угла 1430х230 и шириной 8, высотой 300:

   bmp,bmp1 : TBitmap;
...
 bmp:= TBitmap.Create;
 bmp.Height:=300;
 bmp.Width:=8;
 bmp1:= TBitmap.Create;
 bmp1.Height:=300;
 bmp1.Width:=8;
 bmp1.PixelFormat:= pf16Bit;

 PrintScreen(1430, 230, 8,300, bmp, 16);
 Memo1.Lines.Add(TimeToStr(Now)+"Secur.X1="+IntToStr(Secur.X1)+", Secur.Y1="+IntToStr(Secur.Y1));

 Image13.Picture.Assign(bmp);
 inc(bmpI);
 bmp.SaveToFile("red"+IntToStr(bmpI)+".bmp");
 for j := 0 to Bmp.Width-1 do
   for i:=0 to Bmp.Height-1 do
     begin
       R := GetRValue(bmp.Canvas.Pixels[i,j]);
       G := GetGValue(bmp.Canvas.Pixels[i,j]);
       B := GetBValue(bmp.Canvas.Pixels[i,j]);
       bmp1.Canvas.Pixels[i,j]:=bmp.Canvas.Pixels[i,j];
       bmp1.SaveToFile("bmp1_"+IntToStr(bmpI)+".bmp");

       if (R>130)and(G<50)and(B<50) then
       begin
....

Но красного цвета не находит. Я специально сохраняю в файл bmp - там есть красный цвет, когда я присваиваю данные bmp переменной bmp1 и сохраняю ее - там нет этого цвета.

procedure TForm1.PrintScreen(x,y,w,h: integer; var bmp :TBitmap; FBit :Word);
var
 Status: TMemoryStatus;
Begin     // создаем копию области
 try
   //bmp := TBitmap.Create;
   case FBit of
      8:  Bmp.PixelFormat := pf8Bit;
     16:  Bmp.PixelFormat := pf16Bit;
     24:  Bmp.PixelFormat := pf24Bit;
   end;
   bmp.Width := w; //Screen.Width;
   bmp.Height:= h;
   StretchBlt(bmp.Canvas.Handle,0,0, w,h, GetDC(0),x,y, w,h, SRCCOPY);


 
Харакири   (2010-03-06 18:56) [1]

for j := 0 to Bmp.Width-1 do
  for i:=0 to Bmp.Height-1 do
    begin
      R := GetRValue(bmp.Canvas.Pixels[i,j]);


С индексами беда...

И во всем остальном какой-то сплошной мрак, какие-то обрывки местами закомментированного кода, begin"ы с end"ами не на месте. Что ты хочешь - почти понятно. Но как делаешь - нет. Поди, проспись, будешь лучше соображать, сможешь поставить корректно вопрос.


 
worldmen   (2010-03-06 19:26) [2]

> С индексами беда...
А какая разница с какой стороны смотреть на картинку, она от этого не меняется.
Можно сразу по всоте пройтись, можно по ширине - разницы никакой. Лутше на вопрос ответил.


 
KilkennyCat ©   (2010-03-06 23:28) [3]


> Можно сразу по всоте пройтись, можно по ширине - разницы
> никакой. Лутше на вопрос ответил.

то, что ты "лутше" ответил - это сомнительно. нарушение границ вообще чревато. разницы нет только при осознании, а ты бежишь по ширине, а адресуешься к высоте.
Думаю, тебе надо выучить русский, научиться быть вежливым и благодарным, и осознать, что завышенная самооценка редко дает положительный результат. Потом можешь попробовать включить компьютер.


 
Дмитрий Белькевич   (2010-03-07 10:27) [4]

Есть подозрение на это:

bmp1.PixelFormat:= pf16Bit;


> Можно сразу по всоте пройтись, можно по ширине - разницы
> никакой. Лутше на вопрос ответил.


Если русский - твой родной язык, то рекомендую начать изучение программирования с русского языка.



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.081 c
15-1273508224
AKE
2010-05-10 20:17
2010.08.27
Где можно найти программиста на C++?


15-1268677017
AntonioBanderas
2010-03-15 21:16
2010.08.27
из prn в rtf


15-1267771411
oxffff
2010-03-05 09:43
2010.08.27
Буду в Москве с 22.03 по 26.03. Был бы рад встрече.


2-1267733813
mops
2010-03-04 23:16
2010.08.27
сортировка по типам


3-1242884568
dort12
2009-05-21 09:42
2010.08.27
Сохранение всех файлов с blob поля