|
|
|
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 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
O_O_P, Поищите здесь . Например graphics32 , по описанию вроде умеет работать с альфаканалом. И какие-то ресамплеры там есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.02.2020, 13:53 |
|
||
|
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 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
Рисуешь содержимое TBitmap на TBitmap32 ресайзишь и рисуешь результат обратно. Если скорость не слишком важна - нормальное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2020, 01:00 |
|
||
|
Resample TBitmap с альфа-каналом
|
|||
|---|---|---|---|
|
#18+
Смотря какое сглаживание нужно. Билинейка по 4-м точкам достаточно простая, можно скопипастить из FastDIB, например, и поправить под TBitmap. Но там свои ограничения, при масштабе меньше 0.5 качество ухудшается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2020, 04:27 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39927006&tid=2038590]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 369ms |

| 0 / 0 |
