![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли сравнит две Icon?
jonni © (2003-09-30 21:10:00)
у меня есть две Icon. Я хочу сделать что то типа
if Icon=Icon the do something;
возможно ли сравнивать изображения или нет??
зарание спасибо
ZEE (2003-10-01 17:19:00) [1]
>toka API
вместо Canvas.Pixels[] ставь GetPixel()
jonni (2003-10-01 00:09:00) [2]
spasibo.... probuyu...
odno toka mne ne nravit"sya...... netu u meny acanvas tozhe :)
u menya toka API..... a kak v etom sluchae ne znaesh sluchay no mozhno oboytis?
Mihey (2003-09-30 23:25:00) [3]
> mozhno li paru strochek kinut" kak sravnit" popixel"no
Пробуй код (ошибки справь сам). Сложность в том, что у TIcon нет канвы :(. Приходится копировать в битмапы.
var x, y: Integer;
Icon1, Icon2: TIcon;
IconBMP1, IconBMP2: TBitmap;
...
IconBMP1 := TBitmap.Create;
IconBMP2 := TBitmap.Create;
IconBmp1.Width := Icon1.Width;
IconBmp1.Height := Icon1.Height;
IconBmp2.Width := Icon2.Width;
IconBmp2.Height := Icon2.Height;
IconBMP1.Canvas.Draw(0, 0, Icon1);
IconBMP2.Canvas.Draw(0, 0, Icon2);
for y := 0 to IconBmp1.Height-1 do
for x := 0 to IconBmp1.Width-1 do
begin
If IconBmp1.Canvas.Pixels[x,y] <> IconBmp2.Canvas.Pixels[x,y] then
begin
ShowMessage("Иконки разные!");
Exit;
end;
end;
IconBMP1.Free;
IconBmp2.Free;
jonni (2003-09-30 22:39:00) [4]
potochnee mozhno pro srvnivanie popiksel"no
ideya i bila srazu sravnit" izobrazheniya no ya ne znayu kak :(
mozhno li paru strochek kinut" kak sravnit" popixel"no
лещ (2003-09-30 22:12:00) [5]
Переводи в битмап и сравнивай попиксельно.
Mihey (2003-09-30 22:08:00) [6]
Это не вызовет ошибку, но желаемого ты не достигнешь. Увы, даже если изображение одно, объекты имеют отличия.
jonni (2003-09-30 21:11:00) [7]
sorry
if Icon1=Icon2 ..... hotya dumayu i tak ponyatno :)