2012-04-09 29 views
2

QPixmapでsvgを処理する方法を教えてください。QPixmapとSVG

QPixmap(":/myfile.svg");の場合は、scaled()というコールは機能しません。 QPixmapはピクセル化されます。

Thx。

答えて

5

SVGRendererを使用してQImageにレンダリングする必要があります。そこからQPixmapに変換してQPixmap::convertFromImageとすることができます。そのような

+1

Thx、私はここに示唆しました:http://stackoverflow.com/questions/8551690/qt-how-to-render-scaled-svg-to-qimage –

+1

QPixmap上でQPainterを作成し、SVGをレンダリングすることは可能ですQPixmapに直接接続します。 –

3

何か:

QSvgRenderer renderer(svg_file_name); 
QPixmap pm(width, height); 
pm.fill(fill_color); 
QPainter painter(&pm); 
renderer.render(&painter, pm.rect()); 
7

は今SVGモジュール

QIcon("filepath.svg").pixmap(QSize()) 

だから、シンプルで上質な作品の必要のない非常に簡単な方法があります。私の場合は少なくともそれは働いた。

+0

少なくともQIcon :: addFile() 'メソッド*は暗黙のうちにSVGファイルを受け入れ、それぞれのアイコンモードを許可することに注意してください自身のSVGファイルに関連付ける状態を指定します。 –

関連する問題