Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
ВнизПоиск пикселя в картинке. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.058 c