|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Evgenij Masherov 2:5020/175.2 25 Sep 2001 13:53:13 To : Ilya Malanyin Subject : blur я всетаки -------------------------------------------------------------------------------- Tue Sep 25 2001 16:58, Ilya Malanyin wrote to All: IM> :: субж: IM> for i := 2 to 318 do IM> for j := 2 to 198 do IM> begin IM> n := (getpixel (i-1,j-1)+ IM> getpixel (i-1,j)+ IM> getpixel (i,j-1)+ IM> getpixel (i,j)+ IM> getpixel (i+1,j+1)+ IM> getpixel (i+1,j)+ IM> getpixel (i,j+1)) div 9; IM> putpixel (i,j, n); IM> end; IM> IM> вот почему такой блюр не работает??? пачему????? мож че-то я не так IM> сделал? getpixel возвращает число, байты которого соответствуют интенсивности соответствующего цвета. Формально с ним можно работать, как с числом - но в числах есть такой зверь, как перенос между разрядами (к примеру, сложив 8 раз 128 в синем - получим 0 в синем и +2 в зеленом). Еще интереснее эффекты, если сумма перейдет максимальное положительное... Так что выделяйте отдельные байты - и работайте с ними по отдельности... (После этого тоже не достигнете искомого - потому что у Вас уже обработанные байты предыдущей строки смешаются с необработанными следующей... Делайте вспомогательный буфер) Кроме того, используйте функцию ScanLine - выигрыш в производительности драматический. Евгений Машеров АКА СанитарЖеня --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/3300ec150249.html, оценка из 5, голосов 10
|