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

Вниз

Вывод метафайла с учетом матрицы трансформирования   Найти похожие ветки 

 
AlexT1000   (2003-04-08 18:01) [0]

Могу ли я каким-либо образом выводить emf на DC c применением матрицы трансформирования . мне нужен поворот сдвиг искажение


 
MBo   (2003-04-08 18:18) [1]

конечно, можешь, только в NT-семействе

XF.eM11:=0.707;
XF.eM12:=0.707;
XF.eM21:=-0.707;
XF.eM22:=0.707;
XF.eDx:=100;
XF.eDy:=100;
emf:=TMetaFile.Create;
emf.LoadFromFile("e:\emf.emf");
SetGraphicsMode(Canvas.Handle,GM_ADVANCED);
SetWorldTransForm(Canvas.Handle,XF);
Canvas.Draw(0,0,emf);


 
AlexT1000   (2003-04-08 18:31) [2]

это я знаю. спасибо
а на 98 ?


 
MBo   (2003-04-08 18:38) [3]

простыми средствами - никак.

Векторную графику преобразовать, в общем-то, нетрудно,а с растрами проблема - придется написать что-то вроде аналога PlgBlt. Но самое худшее - вывод текста.


 
AlexT1000   (2003-04-08 18:44) [4]

спасибо. т.е. я так понял мне прийдется раздербанивать emf на рекорды и PlayEnhMetafileRecord c преобразованием координат с учетом моей матрицы для всех функций. засада однако.


 
MBo   (2003-04-09 06:08) [5]

Да, можно так, но очень муторно - типов emf записей много, обрабатывать их все надо по-разному. Парсер emf есть в книге Фень Юаня.
Возможно, устроит такой путь - рисовать emf на bmp, а уже этот bmp трансформировать целиком.


 
AlexT1000   (2003-04-09 14:24) [6]

нет. бум по феньюаню. оч толстая и хорошая книга. ее бы 2 годика назад прочесть. сколько бы времени сохранилось


 
MBo   (2003-04-09 14:26) [7]

А с растрами и текстом как поступишь?


 
AlexT1000   (2003-04-09 14:52) [8]

в связи со спецификой программы в метафайлах их не будет.
текст и графика обрабатывается отдельно


 
MBo   (2003-04-09 14:54) [9]

тогда легче, всего несколько десятков EMR_ обрабатывать ;)

Кстати, случайно графика не одним цветом и одной толщиной линий рисуется?


 
AlexT1000   (2003-04-09 15:00) [10]

нет не одним. просто изображения бабочек зверушек и прочей дребедени надо будет геометрически трансформировать.

через однотонные метафайлы я, наверное, сделаю другие навороты . типа геометрические объекты с возможностью смены цвета. ( возможно градиентного) ну и геом преобразования.

а что?


 
MBo   (2003-04-09 15:08) [11]

В некоторых случаях может подойти способ - рисуешь метафайл на какой-нибудь Canvas или MemDC внутри BeginPath/EndPath, получаешь данные траектории, их можно подвергнуть аффинному преобразованию- всего-то MoveTo, LineTo и BezierTo придется обрабатывать


 
AlexT1000   (2003-04-09 15:15) [12]

нет не одним. просто изображения бабочек зверушек и прочей дребедени надо будет геометрически трансформировать.

через однотонные метафайлы я, наверное, сделаю другие навороты . типа геометрические объекты с возможностью смены цвета. ( возможно градиентного) ну и геом преобразования.

а что?


 
AlexT1000   (2003-04-09 15:17) [13]

спасибо. я уже в курсе. недавно прикупил этого самого фень юаня.
читаю в перерывах между исправлением багов в предыдущих прогах


 
AlexT1000   (2003-04-09 15:34) [14]

кстати такой вопрос . предположим мне в стретилась запись
FillRect.
я поворачиваю координаты на 45 градусов. и что я получаю!?
кривые координаты FillRect т.е зальется больший рект.
не знаешь как с этим можно бороться?


 
MBo   (2003-04-09 15:39) [15]

создать Polygon и FloodFill


 
MBo   (2003-04-09 15:40) [16]

или ClipRegion задать - тогда и границу не надо рисовать


 
AlexT1000   (2003-04-09 15:43) [17]

засада. вообщем работы будет тьма. ясно . спасибо



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

Форум: "Media";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
1-100740
jack128
2003-07-15 21:56
2003.07.31
Как из Delphi выполнить код VBA в Excel?


7-100999
ya
2003-05-17 06:18
2003.07.31
Количество страниц, печатаемых на принтере


1-100773
Makhanev A.S.
2003-07-16 23:19
2003.07.31
Повторное чтение файлов...


14-100938
Snake2000
2003-07-15 11:40
2003.07.31
Просмотр *.mdb


1-100743
alexts
2003-07-14 12:33
2003.07.31
Помогите в выборе метода решения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский