Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.06.2009, 15:01   #1
Kn793
Форумчанин
 
Регистрация: 20.06.2008
Сообщений: 125
По умолчанию Сглаживание

Здравтсвуйте!
В последнее время решил заняться графикой, написал простенькую игрушку, где вся отрисовка идет с помощью стандартных примитивов, тоесть без текстур.
Теперь хотелось бы добавить туда сглаживание. Попробовал просто для каждого пикселя находить среднее арифметическое из него самого и соседних 4рех клеток:
Код:
var
  B1: Tbitmap; // исходное
  B2: Tbitmap; //сглаженное
begin
  for i := 1 to B1.Width - 1 do for j :=1 to B1.Height - 1 do begin
    color:= trunc((B1.Canvas.Pixels[i,j] + B1.Canvas.Pixels[i-1,j] + B1.Canvas.Pixels[i+1,j] + B1.Canvas.Pixels[i,j+1] + B1.Canvas.Pixels[i,j-1]) / 5);
    B2.Canvas.Pixels[i,j] := color;
  end;
end;
результат тот что нужен, но вот время обработки ну оооочень долгое.
Скажите, это вообще реально сделать самописным решением, или же такие вещи делаются только на аппаратном уровне?
Kn793 вне форума Ответить с цитированием
Старый 28.06.2009, 15:10   #2
san72
Форумчанин
 
Регистрация: 04.06.2008
Сообщений: 102
По умолчанию

учи DirectX не парь мозг себе
Keep it simple, stupid
san72 вне форума Ответить с цитированием
Старый 28.06.2009, 16:09   #3
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Если уже так захотели, то
1. Проблема в этом Canvas.Pixels[]
2. Делаите указатель типа PByte (или ^TRGBTriple - если у вас 24битный рисунок)
3. TBitmap.ScanLine даст указатель на строку.
4. Дальше зная указатель на строку делаем что надо с состовляющими (смотреть п.2)
BOBAH13 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прокоментируйте программу "сглаживание матрицы", пожалуйста Makc++ Общие вопросы C/C++ 0 25.06.2009 18:30
Сглаживание углов формы. celovec Общие вопросы Delphi 12 10.02.2009 17:44
TChart не поддерж-ет сглаживание лин графиков!((( JOHNNY BASIC Общие вопросы Delphi 6 08.10.2008 06:29