1
QMLキャンバスdrawImageメソッドを使用してSVGアイコンをレンダリングする際に問題が発生しています。 基本的に、QMLキャンバスはラスタライズサイズを無視し、元のサイズ(この場合は48x48px)からペイントして醜いエイリアシングエフェクトで拡大します。QMLキャンバスでのSVGラスタライズの問題
誰もこれを見て、解決策を見つけたことはありますか?
実用的な自己完結型の例については、QTBUG-59878を参照してください。 ここでは、QMLコードと私が見るもののスクリーンショットだけをコピーします。
左から
- 画像アイテム(正しい)
- として元のSVGアイコンのdrawImage(によってレンダリング同じ画像アイテムは、正直であることが私はこのような正確であると予想さよく、ラスタライズされたデータはImageによって提供されるべきです)
- documentationで説明された手順でロードされたSVGアイコン、loadImageおよびonImageLoadedを持つ
輸入QtQuick 2.0
にRectangle
{
width: 640
height: 480
Image
{
id: svgIcon
source: "qrc:/qt_logo.svg"
x: 10
y: 100
width: 180
height: 200
sourceSize: Qt.size(width, height)
}
Canvas
{
id: canvas
anchors.fill: parent
contextType: "2d"
property string imagefile: "qrc:/qt_logo.svg"
Component.onCompleted: context.loadImage(imagefile)
onImageLoaded: requestPaint()
onPaint:
{
context.drawImage(svgIcon, 200, 100, 180, 200)
context.drawImage(imagefile, 400, 100, 180, 200)
}
}
}
私は既にいくつかの他のアイコンにFontAwesomeを使用していますが、SVGも必要です。さらに、フォントは単色である。 –