Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.04.12;
Скачать: CL | DM;

Вниз

GDI. SetWorldTransform() и сглаживание   Найти похожие ветки 

 
Plastic Wax   (2014-08-24 13:20) [0]

Поворачиваю DC через SetWorldTransform(). Потом рисую на него изображение через BitBlt(). Делаю SetStretchBltMode(DC, HALFTONE), но изображение всё равно выводится с зубчиками.

Как это исправить?


 
junglecat   (2014-08-24 14:30) [1]

http://www.codeproject.com/Articles/13360/Antialiasing-Wu-Algorithm


 
Plastic Wax   (2014-08-24 15:22) [2]

Это для линий.


 
invis   (2014-08-24 16:11) [3]

Чтобы SetStretchBltMode повлияло, надо рисовать через StretchBlt.


 
Plastic Wax   (2014-08-24 17:03) [4]

Попробовал рисовать через StretchBlt(), результат тот же. Странно.


 
Павиа   (2014-08-24 18:30) [5]

Сменить GDI на что нибудь с антилясингом к примеру на agg.pas


 
junglecat   (2014-08-25 10:28) [6]

http://stackoverflow.com/questions/10633400/rotate-bitmap-by-real-angle


 
invis   (2014-08-25 13:19) [7]

С Graphics32 чувак не разобрался, сглаживание там точно есть, причём качественное (бикубический фильтр и т.п.), хотя конечно работает медленно.


 
DVM ©   (2014-08-25 16:12) [8]

в GDI+ есть сглаживание


 
Plastic Wax   (2014-08-25 19:33) [9]

Graphics32, GDI+ не хочу использовать. Тем более компоненты.


 
DVM ©   (2014-08-26 10:40) [10]


> Plastic Wax   (24.08.14 17:03) [4]
> Попробовал рисовать через StretchBlt(), результат тот же.
>  Странно.

Чего странного то, этот флаг на масштабирование распространяется, причем тут поворот координат. Нет в GDI антиалиасинга и не будет. Либо рисуешь сам с алгоритмами антиалиасинга (весьма непросто), либо сглаживаешь всю картинку после рисования перед выводом на экран (так делают многие векторные граф редакторы для увеличения скорости отрисовки) или используешь библиотеки умеющие делать антиалиасинг.


> GDI+ не хочу использовать.

И чем это обусловлено? Он во всех современных Windows присутствует по умолчанию.


 
KilkennyCat ©   (2014-08-26 15:42) [11]


> GDI+

мне понравился. я на нем офигенные динамичные индикаторы делал.


 
Plastic Wax   (2014-08-26 21:58) [12]


> DVM ©   (26.08.14 10:40) [10]
> либо сглаживаешь всю картинку после рисования
> перед выводом на экран


Да, этот метод будет в самый раз.
Только быстрый способ наверное трудно будет найти.

> И чем это обусловлено?

Новое API. Я привык к GDI.


 
KilkennyCat ©   (2014-08-27 06:24) [13]


> Новое API. Я привык к GDI.

ну дык пора отвыкать.
Этому "новому" более 10 лет уже. Переход на него занимает 1 день.
Так что, бредовые отмазки...


 
brother ©   (2014-08-27 06:34) [14]

может на что-то серьезное уйти, zengl например?


 
Plastic Wax   (2014-08-27 12:37) [15]

Ок.
Я вывожу всю графику на TBitmap, потом его переношу на канву, чтобы не мерцало.
Буду конечную картинку сглаживать с помощью GDI+. Только пока в это не вникал.


> brother ©   (27.08.14 06:34) [14]
>
> может на что-то серьезное уйти, zengl например?


Слишком громоздко, что ли. Мне нужно сделать красивый интерактив малыми средствами. Я его почти сделал. Ничего не тормозит. Осталась проблема сглаживания.


 
brother ©   (2014-08-27 13:44) [16]

> красивый интерактив малыми средствами

анимацию в некоторых местах канвы покрутить? если да, то Graphics32 самое оно, можно конечно и TBitmap, но он тормознутый по сравнению с первым...


 
Plastic Wax   (2014-08-27 16:57) [17]


> brother ©   (27.08.14 13:44) [16]
>
> > красивый интерактив малыми средствами
>
> анимацию в некоторых местах канвы покрутить? если да, то
> Graphics32 самое оно, можно конечно и TBitmap, но он тормознутый
> по сравнению с первым...
>  


Всё уже на TBitmap завязано.
Осталось сделать сглаживание.


 
DVM ©   (2014-08-27 17:11) [18]


> Plastic Wax   (27.08.14 16:57) [17]

Попробуй, может работает http://www.swissdelphicenter.ch/torry/showcode.php?id=1484
вообще по запросу TBitmap antialiasing гуглится масса ответов.



Страницы: 1 вся ветка

Текущий архив: 2015.04.12;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.006 c
2-1391889666
Коля
2014-02-09 00:01
2015.04.12
SQL - запрос


15-1409494087
Пит
2014-08-31 18:08
2015.04.12
Игры


1-1330184873
p
2012-02-25 19:47
2015.04.12
Is process debugged


15-1409158163
Rouse_
2014-08-27 20:49
2015.04.12
Реализация менеджера памяти с использованием AWE


15-1409171402
Юрий
2014-08-28 00:30
2015.04.12
С днем рождения ! 28 августа 2014 четверг