Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.01.2009, 15:35
bl0w bl0w вне форума
Прохожий
 
Регистрация: 14.01.2009
Сообщения: 1
Репутация: 10
По умолчанию Таблица пикселей

Уважаемые прогеры, нужна помощь.
1) Имеется TImage с битмапом внутри. Нужно, чтобы при нажатии на любой участок картинки мышкой создавался TBitmap с шириной и высотой, указанными в TEdit пользователем и участок первой картинки, который был выбран мышкой копировался во второй TImage.
2) Как сделать, чтобы второй TImage можно было как бы "закодировать" в таблицу пикселей, чтобы каждый параметр РГБ был вариативным, т.е. чтобы я мог сравнивать две почти одинаковые картинки с разницей в пару пикселей и чтобы программа распознавала их как одинаковые.

Заранее спасибо.
Ответить с цитированием
  #2  
Старый 15.01.2009, 21:23
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Так мудрёно написал! Выложи ка ещё и исходник!

1) Создаёшь второй битмап -
Код:
var image2:TBitmap;
...
image2:= TBitmap.Create;
Задаёшь его ширину, равной записи в TEdit(не забывай, что в TEdit всё записываетсяв тим String, а чтоб преобразовать строку "5" в число 5 нужно пользоваться IntToStr(...)) -
Код:
 
Image2.Width:=IntToStr(Edit1.Text)
Высоту задаёшь аналогично -
Код:
 
Image2.Height:=IntToStr(Edit2.Text)

Обрати внимание, что здесь я использовал два TEdit! Я просто не знаю, как у тебя записывается оба значения в один TEdit(нужен исходник)

А с участком картины я потом напишу, щас времени нет, ok?
Ответить с цитированием
  #3  
Старый 16.01.2009, 08:02
Interface Interface вне форума
Активный
 
Регистрация: 23.05.2008
Адрес: Россия, Уфа
Сообщения: 203
Репутация: 1
По умолчанию

Цитата:
чтобы я мог сравнивать две почти одинаковые картинки с разницей в пару пикселей
Тут навязывается :
Код:
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;
- этот код найдет все отличия Image1 от Image2 и нарисует отличные участки в Image3 красным цветом.
Цитата:
Как сделать, чтобы второй TImage можно было как бы "закодировать" в таблицу пикселей, чтобы каждый параметр РГБ был вариативным
тут я помогу токо так:
Код:
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;
- В итоге получим 3 2мерных массива с цветаами... Однако лучше Юзай scanline
Цитата:
с разницей в пару пикселей и чтобы программа распознавала их как одинаковые.
Это вобще как???
Цитата:
Имеется TImage с битмапом внутри. Нужно, чтобы при нажатии на любой участок картинки мышкой создавался TBitmap с шириной и высотой, указанными в TEdit пользователем и участок первой картинки, который был выбран мышкой копировался во второй TImage

Ты тут случаем не про выделение "резиновым" квадратом говоришь?
__________________
Я ни в чем никогда не уверен... И в этом тоже...
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:18.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025