Попиксельное сравнение картинокDelphi , Графика и Игры , BitmapПопиксельное сравнение картинок
Оформил: DeeCo 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; Статья Попиксельное сравнение картинок раздела Графика и Игры Bitmap может быть полезна для разработчиков на Delphi и FreePascal. Комментарии и вопросы:: 2012-01-28 12:43:49 :: re:Попиксельное сравнение картинокпользователь: Максим. строка Inc(different, Integer(c1^ c2^)); вызывает исключение access volation :: 2013-05-14 14:39:45 :: re:Попиксельное сравнение картинокпользователь: Евгений. А для тех кто первый раз сталкивается с подобным примером и хочет поподробнее изучить составляющие, можно описать как мне тупому что тут делает этот кусок кода: Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |