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

Вниз

Wmf, SetWorldTransform и МеtaFileCanvas   Найти похожие ветки 

 
Jimmy   (2007-10-15 21:54) [0]

Если построить эллипс на MetaFileCanvas, потом повернуть его с помощью SetWorldTransform и сохранить в wmf, то этот эллипс сохраняется не как "эллипс", а как "набор кривых, напоминающих эллипс", причем приближение грубое. Если сохранять в emf, то эллипс вообще не повернут. Вопрос: можно повернуть эллипс без SetWorldTransform, но чтоб он остался эллипсом в полном смысле слова или как корректно сохранить все это в wmf или emf после SetWorldTransform? Я как-то уже задавал похожий вопрос, но проблема осталась, позволю себе сделать это еще раз. Заранее спасибо!


 
MBo ©   (2007-10-16 05:36) [1]

стоит свои слова подтверждать кодом.


procedure TForm2.Button1Click(Sender: TObject);
var
 emf: TMetaFile;
 mfc: TMetaFileCanvas;
 xf: TXForm;
begin
 emf:= TMetaFile.Create;
 emf.Enhanced := True;
 mfc:= TMetaFileCanvas.Create(emf, 0);
 xf.eM11 := 0.7;
 xf.eM12 := -0.7;
 xf.eM21 := 0.7;
 xf.eM22 := 0.7;
 xf.eDx := 0;
 xf.eDy := 100;
 SetWorldTransform(mfc.Handle, xf);
 mfc.Ellipse(0, 100, 200, 200);
 mfc.Free;
 Canvas.Draw(0,0,emf);
 emf.SaveToFile("e:\test.emf");
 emf.Free;
end;


 
Jimmy   (2007-10-16 20:33) [2]

Прежде всего большое спасибо за ответ! Стал сравнивать этот код со своим, и пришел к выводу что делаю практически тоже самое. Что же не так? Я определял, что моя программа некорректно создает emf-файл потому что после открытия его в Corel Draw, он отображался некорректно. Не мог же я подумать, что ошибается Corel. Установил еще разные просмотрщики, и к удивлению обнаружил, что все они отображают этот emf-файл по разному. "Просмотр изображений и факсов Windows" - так как я задумал, ACDSee растягивает рисунок, Irfan - корректно, Corel - вообще криво. Не поделитесь мыслями по этому поводу?


 
sdubaruhnul ©   (2007-10-16 20:42) [3]

>Jimmy   (16.10.07 20:33) [2]

Из перечисленных тобой программ только Corel Draw - редактор.


 
MBo ©   (2007-10-17 07:02) [4]

>все они отображают этот emf-файл по разному
Возможно, надо установить MMHeight и MMWidth


 
Jimmy   (2007-10-18 17:06) [5]

>MBo
Не помогло. Все равно ACDSee не правильно трактует размер, а Corel не поворачивает эллипс.


 
Ins ©   (2007-10-19 11:50) [6]


> а Corel не поворачивает эллипс.

Рискну предположить, что дело в отсутствии вызова
SetGraphicsMode(GM_ADVANCED);

Хотя может и нет, who knows...



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

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

Наверх




Память: 0.48 MB
Время: 0.009 c
9-1178802476
Sergey1982
2007-05-10 17:07
2009.04.12
Вопрос по динамическим структурам данных


6-1202161712
NikB
2008-02-05 00:48
2009.04.12
Пример временного стоп-а TIdPeerThread в TIdHTTPServer


15-1234347409
KSergey
2009-02-11 13:16
2009.04.12
Про стандартный FireWall Windows


15-1234338924
Дмитрий С
2009-02-11 10:55
2009.04.12
Изменение прав доступа NTFS через какой либо COM obj.


2-1235468723
Korbit
2009-02-24 12:45
2009.04.12
Получить данные S.M.A.R.T от HDD