Использовать фильтр объема для изображенияDelphi , Графика и Игры , ИзображенияИспользовать фильтр объема для изображения
Оформил: DeeCo procedure Emboss(ABitmap : TBitmap; AMount : Integer); var x, y, i : integer; p1, p2: PByteArray; begin for i := 0 to AMount do begin for y := 0 to ABitmap.Height-2 do begin p1 := ABitmap.ScanLine[y]; p2 := ABitmap.ScanLine[y+1]; for x := 0 to ABitmap.Width do begin p1[x*3] := (p1[x*3]+(p2[(x+3)*3] xor $FF)) shr 1; p1[x*3+1] := (p1[x*3+1]+(p2[(x+3)*3+1] xor $FF)) shr 1; p1[x*3+2] := (p1[x*3+1]+(p2[(x+3)*3+1] xor $FF)) shr 1; end; end; end; end; Here's the translation of the text into Russian: Процедура Delphi под именем Процедура принимает два параметра:
Вот шаг за шагом, что код делает:
Результатом будет изображение с более выразительной детекцией контуров и улучшенными деталями, сравнительно с оригинальным изображением. В отношении улучшений, вот некоторые предложения:
В целом, это код - хороший старт для реализации фильтра эмбоссирования в Delphi. С некоторыми улучшениями и оптимизациями вы можете создать robust и эффективный инструмент обработки изображений. Приведена процедура Emboss для изменений изображения на основе фильтра объема, использующего операцию XOR и сдвига бита для создания эффекта рельефа. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Изображения ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |