Привет.
Существует необходимость перевести содержимое .EMF файла в набор контуров.
Создал рисунок в Adobe illustrator в котором просто строчка текста и экспортировал в .EMF файл.
Для перевода в контур применяю такой код:
HENHMETAFILE hemf = GetEnhMetaFile(m_file_name.GET());
//draw the text in a memdc
CDC* p_dc = memdc.GetDC();
EnumEnhMetaFile(p_dc->m_hDC, hemf, EnhMetaFileProc, 0, CRect());
CRect rect(0, 0, memdc.GetWidth(), memdc.GetHeight());
// draw metafile items in a path
p_dc->BeginPath();
BOOL res = PlayEnhMetaFile(p_dc->m_hDC, hemf, rect);
if (!p_dc->EndPath())
return false;
//get rid of the beziers
p_dc->FlattenPath();
//how many points are there in the path?
POINT* p_points = NULL;
BYTE* p_types = NULL;
int count(0);
count = p_dc->GetPath(p_points, p_types, count);
Здесь count==0 на выходе (
Не понимаю почему, тем более что команды, присутствующие в EMF файле (трейсил по EnumEnhMetaFile) это команды TextOut, которые поддерживаются BeginPath скобкой...
Кроме того, если просто сделать EnumEnhMetaFile на экран то текст нормально показывается (это я так, для справки
Здравствуйте, xception, Вы писали:
X>Не понимаю почему, тем более что команды, присутствующие в EMF файле (трейсил по EnumEnhMetaFile) это команды TextOut, которые поддерживаются BeginPath скобкой...
Шрифт случайно не растровый? Траектории генерируются только для векторных (TTF и др.)
Re[2]: Enhanced metafile как превратить в контур ?
Здравствуйте, MBo, Вы писали:
MBo>Здравствуйте, xception, Вы писали:
X>>Не понимаю почему, тем более что команды, присутствующие в EMF файле (трейсил по EnumEnhMetaFile) это команды TextOut, которые поддерживаются BeginPath скобкой...
MBo>Шрифт случайно не растровый? Траектории генерируются только для векторных (TTF и др.)
Тут прикол в том, что я трейсил и другой файлик, в котором просто загогулину кисточкой нарисовал...
Там выскакивает метакоманда PolyPolygon16, в списке возможных команд для CDC::BeginPath есть команда PolyPolygon, но тем не менее GetPath дает пустой путь в результате
Здравствуйте, OLEGus1, Вы писали:
OLE>Здравствуйте, xception, Вы писали:
X>>Заранее благодарен за идеи
OLE>А если перевести шрифты в вектора? Тогда не будет textout