|
|
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
Ищу код (как можно проще) для изменения размера со сглаживанием TBitmap с альфа-каналом. С поддержкой 64 бит. Ресайз с SetStretchBltMode(Bitmap.Canvas.Handle, STRETCH_HALFTONE); удаляет альфа-канал. WIC не предлагать, это на самый край. В сети нашёл старый код для C ( http://www.geisswerks.com/ryan/FAQS/resize.html). Но уж слишком сложный для меня, тем более для перевода с поддержкой x64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2020, 23:33:51 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
O_O_P, Поищите здесь . Например graphics32 , по описанию вроде умеет работать с альфаканалом. И какие-то ресамплеры там есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2020, 13:53:48 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
alekcvp, Мне нужно заресайзить TBitmap и передать дальше хэндл. Graphics32 обратно TBitmap с альфа-каналом вернуть не может. Он хорош для отображения в несколько слоёв, иначе и Canvas.StretchDraw достаточно. Vampire Image Library может так. Но. TImagingBitmap.Assign(Bmp) при обратном Assign даёт артефакты. Через TSingleImage и Stream load/save получается без артефактов. Но ресайз в библиотеке плохой - часто даёт "сеточку" при уменьшении размеров. Но мультиплатформа. Остаётся GDI+, но в dll у меня были проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2020, 00:17:45 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
Рисуешь содержимое TBitmap на TBitmap32 ресайзишь и рисуешь результат обратно. Если скорость не слишком важна - нормальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2020, 01:00:22 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
Смотря какое сглаживание нужно. Билинейка по 4-м точкам достаточно простая, можно скопипастить из FastDIB, например, и поправить под TBitmap. Но там свои ограничения, при масштабе меньше 0.5 качество ухудшается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2020, 04:27:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39926940&tid=2038590]: |
0ms |
get settings: |
16ms |
get forum list: |
26ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
83ms |
get topic data: |
24ms |
get forum data: |
6ms |
get page messages: |
90ms |
get tp. blocked users: |
3ms |
| others: | 354ms |
| total: | 618ms |

| 0 / 0 |
