Архив тегов: Bitmap

Blur в Delphi. Часть III: Альфа-канал

В предыдущих частях (часть 1, часть 2) мы реализовали несколько алгоритмов размытия — от наивной свёртки до быстрого Stack Blur. Но всё это время мы работали только с тремя каналами: R, G, B. Альфа-канал мы либо игнорировали, либо просто копировали… (ДАЛЕЕ)

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 предоставляет прямой доступ к памяти изображения и ускоряет… (ДАЛЕЕ)

Контур образа: Алгоритм поиска

Проблема найти контур образа рано или поздно возникает почти у каждого. Когда возникла у меня, этот алгоритм, за неимением лучшего, пришлось придумать. Думаю, есть масса аналогов. Проблема алгоритма поиска контура образа в том, что никто не спешит им делиться.

TBitmap.PixelFormat

PixelFormat

Формат пикселя (TBitmap.PixelFormat) влияет на способ хранения информации о цвете. Подразумевалась небольшая справочная статья, но материала оказалось неожиданно много, что незаметная статья из глубин сайта выросла до целой записи на главную страницу.

Пользовательский стиль пера. Часть II: Бегущие муравьи

Это продолжение разговора, начатого в первой части, про эффект рамки «бегущие муравьи». Было также сказано, что лучше этого не делать в GDI. Поэтому сейчас сделаем бегущих муравьёв в GDI и GDI+, и сравним.

Вывести текст в перспективе

Текст в перспективе

Нарисовать текст в перспективе особой сложности нет. Более проблемно заставить такой текст быть текстурным. Рассмотрим в статье, как нарисовать текст в перспективной проекции с использованием текстуры в качестве заливки. Также разрешим ряд часто задаваемых вопросов.