Архив тегов: Исходники

Blur в Delphi. Часть II: Box, Stack, Downscale

В предыдущей части мы рассмотрели эталонный Gaussian Blur и способы ускорения этого процесса. Но там мы достигли потолка, сложность O(r) преодолеть не получилось. В этой части мы рассмотрим методы, приближающие нас к Гауссу, зато вычислительная сложность которых равна O(1).

Blur в Delphi. Часть I: Gaussian Blur

Размытие изображения (blur) — одна из базовых операций в обработке графики. Без неё не обходятся ни повышение резкости (Unsharp Mask), ни выделение краёв (Difference of Gaussians), ни шумоподавление, ни создание эффектов глубины резкости. Gaussian blur — эталон качества. Набор его… (ДАЛЕЕ)

Clipboard в Delphi: Изображение без потери альфа-канала

Для тестирования и изучения часто использую картинки из браузера. Но очень часто бывает так, что скопировал, вставил и вместо прозрачности вижу чёрный фон. А мне как раз нужна прозрачность, альфа-канал. Давайте разберёмся, почему так происходит и как это исправить.

TPngImage: глюк масштабирования и как это исправить

Обнаружил удивительную вещь — при масштабировании TPngImage картинка смещается относительно такой же картинки в TBitmap. Захотелось разобраться в причинах столь загадочного поведения.

TBitmap.ScanLine: Полное руководство

При работе с графикой в Delphi часто возникает необходимость обрабатывать изображения попиксельно — применять фильтры, конвертировать цвета, анализировать содержимое. Стандартное свойство канвы Pixels[X,Y] решает эту задачу, но работает катастрофически медленно. Свойство ScanLine предоставляет прямой доступ к памяти изображения и ускоряет… (ДАЛЕЕ)

Жизнь без Windows: Кроссплатформенная MulDiv для Delphi

Лично меня достало ради MulDiv вечно подключать Winapi.Windows. Знакомая ситуация? Пишешь код с прицелом на кроссплатформенность, всё красиво, а тут — бац! — нужна MulDiv. И вот уже тянешь за собой всю Windows-зависимость, как якорь.

Шум Перлина: Разбор алгоритма

Шум Перлина — это мост между математикой и природой. Он дает нам инструмент для создания бесконечно разнообразных миров и реалистичных природных эффектов. Он перевернул представления о компьютерной графике и принёс своему создателю Оскар. Давайте разбираться, что это такое и как… (ДАЛЕЕ)

Кубический Сплайн Эрмита

Если требуется превратить корявую ломаную в симпатичную гладкую кривую так, чтобы она проходила через все точки ломаной, то тут может помочь кубический сплайн Эрмита. Если лень читать теорию, а её здесь много, то сразу идём в конец статьи, там исходники… (ДАЛЕЕ)

Как сделать чёрным системное меню элемента Windows

Есть мнение, что сделать чёрным системное меню какого-либо элемента Windows в Delphi не получится. Даже сменив тему всей ОС. Если меняем тему окна на тёмную, внутреннее меню TEdit останется светлым. Что делать? Как приручить дракона?

Пересечение отрезков в 2D и 3D

Пересечение отрезков в последнее время стало основным моим занятием. Зафиксирую, почему именно так, а то потом забудется. Как найти пересечения прямых рассмотрено в статье Пересечение прямых, угол и координаты пересечения. Нас интересуют именно отрезки. Решение векторно-алгебраическое, поэтому будет интересно.