このページでは

C

Image QML Type

画像を表示します。詳細...

Import Statement: import QtQuick
Since: Qt Quick Ultralite 1.0
Inherits:

Item

Inherited By:

ColorizedImage

列挙型

プロパティ

詳細説明

「Image」タイプは画像を表示します。

画像のソースは、source プロパティを使用してリソースURIとして指定されます。 画像リソースは、qulrcc ツール(Resource Compiler)を通じて利用可能になります。デフォルトでは、画像はバイナリに埋め込まれる前に解凍されるため、PNG や JPEG などのビットマップ形式、SVG などのベクターグラフィックス形式を含め、Qt がサポートする標準的な画像形式はすべてサポートされています。以下の表に、サポートされているすべての形式を記載します:

形式説明
BMPWindows ビットマップ
DDSDirect Draw Surface
GIFグラフィック・インターチェンジ・フォーマット (オプション)
ICNSApple アイコン画像
JP2Joint Photographic Experts Group 2000
JPGJoint Photographic Experts Group
JPEGJoint Photographic Experts Group
MNGMultiple-image Network Graphics
PNGポータブル・ネットワーク・グラフィックス
PBMポータブル・ビットマップ
PGMポータブル・グレイマップ
PPMポータブル・ピクマップ
SVGスケーラブル・ベクター・グラフィックス
TGATruevision Graphics Adapter
TIFFタグ付き画像ファイル形式
WBMPWireless Bitmap
WEBPWebP
XBMX11ビットマップ
XPMX11 ピクマップ

注:アニメーション 画像はサポートされていません。

width およびheight プロパティが指定されていない場合、Image は読み込まれた画像のサイズを自動的に使用します。デフォルトでは、項目の幅と高さを指定すると、画像はそのサイズにスケーリングされます。この動作は、fillMode プロパティを設定することで変更でき、代わりに画像を伸縮させたり、タイル状に並べたりすることができます。

「画像リソースの取り扱い」も参照してください。

Text itemは、テキストレイアウトの一部として画像をレンダリングするために、HTMLの<img>タグをサポートしています。詳細については、QtQuick::Text::textFormat を参照してください。

使用例

以下の例は、Image 型の最も基本的な使用例を示しています。

import QtQuick 2.15

Image {
    source: "qrc:/pics/qtlogo.png"
}

「Image」タイプを使用して表示されたQtのロゴ。


BorderImage 、ColorizedImage 、qulrcc ツール、ImageFiles.MCU.resourceCompression、ImageFiles.MCU.resourceCachePolicy、ImageFiles.MCU.resourceOptimizeForRotation、ImageFiles.MCU.resourceOptimizeForScale、画像リソースの取り扱い、画像の最適化、リソースの管理、および画像のキャッシュも参照してください。

列挙型のドキュメント

FillMode

選択可能な塗りつぶしモードの一覧を表示します。

定数説明
Image.Stretch画像をサイズに合わせて拡大縮小します。
Image.PreserveAspectFitトリミングせずに、画像を均一に拡大縮小します。
Image.PreserveAspectCrop画像を均一に拡大縮小して領域いっぱいに表示し、必要に応じてトリミングします。
Image.Tile画像を水平および垂直方向に複製します。
Image.TileVertically画像を縦方向に複製し、同時に横方向に引き伸ばします。
Image.TileHorizontally画像を水平方向に複製し、垂直方向に引き伸ばします。
Image.Pad画像を変形しません。

HorizontalAlignment

画像を水平方向に揃えるための代替方法を一覧で示します。

定数説明
Image.AlignLeft画像を左揃えにします。
Image.AlignRight画像を右揃えにします。
Image.AlignHCenter画像を中央に揃えます。

VerticalAlignment

画像を垂直方向に揃えるための代替方法を一覧で示します。

定数説明
Image.AlignTop画像を上部に配置します。
Image.AlignBottom画像を下部に配置します。
Image.AlignVCenter画像を中央に配置します。

プロパティのドキュメント

fillMode : FillMode

このプロパティを設定すると、ソース画像のサイズがアイテムのサイズと異なる場合の挙動を定義できます。

Qtのロゴが画像領域全体に引き伸ばされ、アスペクト比が歪んでしまいました。

伸縮 (既定値)
Image {
    width: 130; height: 100
    source: "qrc:/qtlogo.png"
}

Qtのロゴは、アスペクト比を維持したまま画像領域に収まるように拡大縮小され、両側に余白が設けられています。

PreserveAspectFit
Image {
    width: 130; height: 100
    fillMode: Image.PreserveAspectFit
    source: "qrc:/qtlogo.png"
}

Qtのロゴは、アスペクト比を維持したまま画像領域いっぱいに拡大され、端が切り取られています。

PreserveAspectCrop
Image {
    width: 130; height: 100
    fillMode: Image.PreserveAspectCrop
    source: "qrc:/qtlogo.png"
    clip: true
}

Qtのロゴが、画像領域を埋め尽くすように、両方向に繰り返しタイル状に並べられています。

タイル
Image {
    width: 120; height: 120
    fillMode: Image.Tile
    horizontalAlignment: Image.AlignLeft
    verticalAlignment: Image.AlignTop
    source: "qrc:/qtlogo.png"
}

Qtのロゴは、画像の高さいっぱいに収まるよう縦方向に並べて配置され、同時に横方向に引き伸ばされています。

TileVertically
Image {
    width: 120; height: 120
    fillMode: Image.TileVertically
    verticalAlignment: Image.AlignTop
    source: "qrc:/qtlogo.png"
}

Qtのロゴは、画像の幅いっぱいに収まるよう水平方向に並べて表示され、垂直方向には引き伸ばされています。

TileHorizontally
Image {
    width: 120; height: 120
    fillMode: Image.TileHorizontally
    verticalAlignment: Image.AlignLeft
    source: "qrc:/qtlogo.png"
}

注: clip は デフォルトでfalse に設定されています。つまり、fillModeがPreserveAspectCrop に設定されている場合でも、アイテムがバウンディング矩形の外側に描画される可能性があります。

スケーリングされる画像に対してImageFiles.MCU.resourceOptimizeForScaleを設定すると、そのリソースに対するビルド時の最適化が有効になります。

horizontalAlignment : HorizontalAlignment

verticalAlignment : VerticalAlignment

画像の水平および垂直方向の配置を設定します。デフォルトでは、画像は中央揃えになります。

rotation : real [since Qt Quick Ultralite 1.3]

このプロパティは、アイテムのtransformOrigin を基準に、時計回りに度単位で回転した角度を保持します。

デフォルト値は 0 度(つまり、回転なし)です。

青い長方形の中に、回転した赤い長方形がある。

Rectangle {
    color: "blue"
    width: 100; height: 100
    Image {
        source: "red.png"
        x: 25; y: 25; width: 50; height: 50
        rotation: 30
    }
}

注: レンダリング上の不具合(たとえば、回転アニメーションを作成する場合など)を回避するには、ImageFiles.MCU.Experimental.resourceSplitImageOptimization を false に設定してください 。

このプロパティは、Qt Quick Ultralite 1.3 で導入されました。

「 Transform 」および「Rotation 」も参照してください 。

scale : real [since Qt Quick Ultralite 1.3]

このプロパティは、このアイテムのスケール係数を保持します。

スケール値が 1.0 未満の場合、アイテムは小さく表示され、1.0 より大きい場合は大きく表示されます。スケール値が負の場合、アイテムは反転して表示されます。

デフォルト値は 1.0 です。

スケーリングは、transformOrigin から適用されます。

大きな青い長方形の中に、小さな緑の長方形と、その中に収まるように縮小された赤い長方形がある。

import QtQuick 2.15

Rectangle {
    color: "blue"
    width: 100; height: 100

    Rectangle {
        color: "green"
        width: 25; height: 25
    }

    Image {
        source: "red.png"
        x: 25; y: 25; width: 50; height: 50
        scale: 1.4
        transformOrigin: Item.TopLeft
    }
}

注: 非整数のスケーリング係数を適用する場合(たとえば、スケーリングアニメーションを作成する場合など)、レンダリング上の不具合を避けるために、ImageFiles.MCU.Experimental.resourceSplitImageOptimization をfalse に設定してください 。

このプロパティは、Qt Quick Ultralite 1.3 で導入されました。

「 Transform 」および「Scale 」も参照してください 。

source : image

url というQMLの基本型はサポートされていないため、image という別の基本型が存在します。これは、Image オブジェクトのsource プロパティの型です。

Image は、例えば「qrc:/images/map.png」のような絶対リソース URI を受け付けます。このリソースを利用するには、qulrcc ツールでコンパイルされている必要があります。

コンパイル時に認識されない文字列がソースとして設定される場合Qt Quick Ultralite は、指定された文字列のリソースハンドルを見つけるために実行時検索を実行します。

たとえば、次のコードでは実行時の検索が行われます:

Image {
    source: "qrc:/" + "foo.png"
}

検索に失敗した場合、sourceプロパティは空の状態にリセットされ、何もレンダリングされません。

注: Qt Quick Ultraliteは動的リソースをサポートしていません。すべてのリソースは、Qt Quick Ultraliteのリソースシステムを使用して登録する必要があります。

「リソースの管理」および「画像リソースの取り扱い」も参照してください 。

transform : list<Transform>

このプロパティには、適用する変換のリストが格納されます。

詳細については、Transform を参照してください。

transformOrigin : QtQuick::Item::TransformOrigin [since Qt Quick Ultralite 1.3]

このプロパティは、scale およびrotation が変換を行う際の原点を保持します。

下の画像に示すように、9つの変形原点が利用可能です。デフォルトの変形原点はItem.Center です。

長方形上に描かれた9つの変換原点。

この例では、画像の右下隅を軸として画像を回転させています。

Image {
    source: "myimage.png"
    transformOrigin: Item.BottomRight
    rotation: 45
}

任意の変形原点を設定するには、`transform` を指定して、Scale またはRotation の変形タイプを使用します。

このプロパティは、Qt Quick Ultralite 1.3 で導入されました。

特定の Qt ライセンスの下で利用可能です。
詳細はこちらをご覧ください。