|
Вопрос # 4 947/ вопрос решён / |
|
Здравствуйте, уважаемые эксперты ! Как можно ускорить работу этого кода ? Можете поподробней расказать про внешний бесплатный модуль QPixels и что такой scanline ?
Приложение: Переключить в обычный режим- //**************************************************************************//
-
- //**************************************************************************//
- i1 := 0;
- j1 := 0;
- b := x11 + 50;
- c := y11 + 8;
- for i := x11 to b do
- begin
- for j := y11 to c do
- begin
- if (img1.Canvas.Pixels[i, j] = RGB(r, g, bc)) or (img1.Canvas.Pixels[i, j]
- = RGB(r2, g2, bc2)) then
- begin
- img1.Canvas.Pixels[i, j] := RGB(240, 240, 240);
- img2.Canvas.Pixels[i1, j1] := img1.Canvas.Pixels[i, j];
- end
- else
- img2.Canvas.Pixels[i1, j1] := RGB(0, 0, 0);
- j1 := j1 + 1;
- end;
- i1 := i1 + 1;
- j1 := 0;
- end;
- //**************************************************************************//
- //******************************END*****************************************//
- //**************************************************************************//
 |
Вопрос задал: LaCoSt (статус: Посетитель)
Вопрос отправлен: 23 января 2011, 02:21
Состояние вопроса: решён, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 2; последнее сообщение — 23 января 2011, 09:49; участников в обсуждении: 2.
|
LaCoSt (статус: Посетитель), 23 января 2011, 02:32 [#1]:
procedure TForm1.Button1Click(Sender: TObject);
var
b1, b2: TBitmap;
c1, c2: PByte;
x, y, i,
different: Integer; // Counter for different pixels
begin
b1 := Image1.Picture.Bitmap;
b2 := Image2.Picture.Bitmap;
Assert(b1.PixelFormat = b2.PixelFormat); // they have to be equal
different := 0;
for y := 0 to b1.Height - 1 do
begin
c1 := b1.Scanline[y];
c2 := b2.Scanline[y];
for x := 0 to b1.Width - 1 do
for i := 0 to BytesPerPixel - 1 do // 1, to 4, dep. on pixelformat
begin
Inc(different, Integer(c1^ <> c2^));
Inc(c1);
Inc(c2);
end;
end;
end;
Вот единственный исходник который я смог нарыть.Если кто-нибудь в этом разбирается не могли бы вы написать какие-то коментарии по нему.Так же интересует можно ли сравнивать картинки между собой например вот так img1 = img2 ? И как максимально быстро будет работать сравнение двух картинок ?
|
|
min@y™ (статус: Доктор наук), 23 января 2011, 09:49 [#2]:
Цитата (LaCoSt):
Вот единственный исходник который я смог нарыть.
Хреново рыл, лопату наточи и тыкай сюда.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
26 января 2011, 01:01: Статус вопроса изменён на решённый (изменил автор вопроса — LaCoSt)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|