Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2015.04.12;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.002 c
15-1408872047
Plastic Wax
2014-08-24 13:20
2015.04.12
GDI. SetWorldTransform() и сглаживание


15-1401904539
colombo
2014-06-04 21:55
2015.04.12
Реверсинг программы


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


2-1391889666
Коля
2014-02-09 00:01
2015.04.12
SQL - запрос


15-1409517002
Юрий
2014-09-01 00:30
2015.04.12
С днем рождения ! 1 сентября 2014 понедельник





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский