![]() |
|
#1
|
|||
|
|||
![]() Уважаемые прогеры, нужна помощь.
1) Имеется TImage с битмапом внутри. Нужно, чтобы при нажатии на любой участок картинки мышкой создавался TBitmap с шириной и высотой, указанными в TEdit пользователем и участок первой картинки, который был выбран мышкой копировался во второй TImage. 2) Как сделать, чтобы второй TImage можно было как бы "закодировать" в таблицу пикселей, чтобы каждый параметр РГБ был вариативным, т.е. чтобы я мог сравнивать две почти одинаковые картинки с разницей в пару пикселей и чтобы программа распознавала их как одинаковые. Заранее спасибо. |
#2
|
|||
|
|||
![]() Так мудрёно написал! Выложи ка ещё и исходник!
1) Создаёшь второй битмап - Код:
var image2:TBitmap; ... image2:= TBitmap.Create; Код:
Image2.Width:=IntToStr(Edit1.Text) Код:
Image2.Height:=IntToStr(Edit2.Text) Обрати внимание, что здесь я использовал два TEdit! Я просто не знаю, как у тебя записывается оба значения в один TEdit(нужен исходник) А с участком картины я потом напишу, щас времени нет, ok? |
#3
|
||||
|
||||
![]() Цитата:
Код:
var xp, xy : Integer; ... For xp := 0 to Image1.Width do For yp := 0 to Image1.Height do If Image1.Pixels[xp,yp] <> Image2.Pixels[xp,yp] then Image3.Pixels[xp,yp] := clRed; Цитата:
Код:
var r, g, b : array [0..1000, 0..1000] of byte; //тут могут быть ошибки, нужен 2 мерный массив xp, xy : Integer; ... For xp := 0 to Image1.Width do For yp := 0 to Image1.Height do begin r := GetRValue(Image1.Pixels[xp,yp]); g := GetGValue(Image1.Pixels[xp,yp]); b := GetBValue(Image1.Pixels[xp,yp]); end; ![]() Цитата:
Цитата:
Ты тут случаем не про выделение "резиновым" квадратом говоришь? ![]() Я ни в чем никогда не уверен... И в этом тоже... ![]() |