2009-08-31 7 views
2

誰かが.svgファイルを読み込み、C/C++と任意のライブラリを使用して表示する方法の例を提供できますか?私はあなたがSDL、カイロ、または何を使用するかと思います。C/C++でのsvgの例

答えて

2

パベルが書いたように、QtSvgは私が信じる方法です。使い方は簡単ですが、私たちのチームでは特にLinux上でQtSvgのパフォーマンス上の問題に直面しています。そこで私たちはSVGファイルのXMLを手作業で直接解析し、Qt自体を使ってレンダリングすることにしました。これははるかに高速であることが判明しました。

擬似コード: -

// Read the SVG file using XML parser (SAX) 
void SvgReader::readFile() 
{ 
    QFile file(<some svg filename>); 
    if (!file.open(QFile::ReadOnly | QFile::Text)) { 
    qWarning("Cannot open file"); 
    return; 
    } 
    QString localName; 
    QXmlStreamAttributes attributes; 
    pXml = new QXmlStreamReader(&file); 
    pXml->setNamespaceProcessing(false); 
    while (!pXml->atEnd()) { 
    switch (pXml->readNext()) { 
     case QXmlStreamReader::StartElement: 
      localName = pXml->name().toString(); 
      if (localName.compare(<some element path>) == 0) { 
      attributes = pXml->attributes(); 
      QStringRef data = attributes.value(<some attribute name>); 
      // parse/use your data; 
      } 
     // similarly other case statements 
    } 
    } 
} 
1

QtSvgモジュールが役立つ可能性があります。

関連する問題