Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Resample TBitmap с альфа-каналом / 5 сообщений из 5, страница 1 из 1
14.02.2020, 23:33
    #39926940
O_O_P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Resample TBitmap с альфа-каналом
Ищу код (как можно проще) для изменения размера со сглаживанием TBitmap с альфа-каналом. С поддержкой 64 бит.
Ресайз с SetStretchBltMode(Bitmap.Canvas.Handle, STRETCH_HALFTONE); удаляет альфа-канал.
WIC не предлагать, это на самый край.
В сети нашёл старый код для C ( http://www.geisswerks.com/ryan/FAQS/resize.html). Но уж слишком сложный для меня, тем более для перевода с поддержкой x64.
...
Рейтинг: 0 / 0
15.02.2020, 13:53
    #39927006
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Resample TBitmap с альфа-каналом
O_O_P,

Поищите здесь .
Например graphics32 , по описанию вроде умеет работать с альфаканалом.
И какие-то ресамплеры там есть.
...
Рейтинг: 0 / 0
18.02.2020, 00:17
    #39927710
O_O_P
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Resample TBitmap с альфа-каналом
alekcvp,
Мне нужно заресайзить TBitmap и передать дальше хэндл.
Graphics32 обратно TBitmap с альфа-каналом вернуть не может. Он хорош для отображения в несколько слоёв, иначе и Canvas.StretchDraw достаточно.
Vampire Image Library может так. Но. TImagingBitmap.Assign(Bmp) при обратном Assign даёт артефакты. Через TSingleImage и Stream load/save получается без артефактов. Но ресайз в библиотеке плохой - часто даёт "сеточку" при уменьшении размеров. Но мультиплатформа.
Остаётся GDI+, но в dll у меня были проблемы.
...
Рейтинг: 0 / 0
18.02.2020, 01:00
    #39927717
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Resample TBitmap с альфа-каналом
Рисуешь содержимое TBitmap на TBitmap32 ресайзишь и рисуешь результат обратно.

Если скорость не слишком важна - нормальное решение.
...
Рейтинг: 0 / 0
18.02.2020, 04:27
    #39927722
Sapersky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Resample TBitmap с альфа-каналом
Смотря какое сглаживание нужно. Билинейка по 4-м точкам достаточно простая, можно скопипастить из FastDIB, например, и поправить под TBitmap.
Но там свои ограничения, при масштабе меньше 0.5 качество ухудшается.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Resample TBitmap с альфа-каналом / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]