画像ファイルの読み込みと書き込み

画像を読み込む最も一般的な方法は、QImage およびQPixmap のコンストラクタを使用するか、QImage::load()およびQPixmap::load()関数を呼び出すことです。さらに、QtにはQImageReader クラスが用意されており、これにより処理をより細かく制御できます。画像形式の基盤となるサポート機能によっては、このクラスが提供する関数を使用することでメモリを節約し、画像の読み込みを高速化できます。

同様に、QtにはQImageWriter クラスが用意されており、画像を保存する前に、ガンマ値、圧縮率、画質など、フォーマット固有のオプションを設定することができます。このようなオプションが必要ない場合は、代わりにQImage::save() またはQPixmap::save() を使用できます。

QMovie

QMovie は、内部でQImageReader クラスを利用してアニメーションを表示するための利便性向上のためのクラスです。QMovie クラスは、作成されると、指定されたアニメーションの実行および制御のためのさまざまな関数を提供します。

QMovieでアニメーションを作成する際、アニメーションを個々の画像に分割した状態を示すスクリーンショット

QImageReader クラスとQImageWriter クラスは、Qt のすべての画像フォーマットに対する共通の画像 I/O インターフェースであるQImageIOHandler クラスに依存しています。QImageIOHandler オブジェクトは、QImageReader およびQImageWriter によって内部的に使用され、Qt へのさまざまな画像フォーマットのサポートを追加しています。

サポートされているファイル形式の一覧は、QImageReader::supportedImageFormats() およびQImageWriter::supportedImageFormats() 関数を通じて確認できます。Qt はデフォルトでいくつかのファイル形式をサポートしており、さらに新しい形式をプラグインとして追加することも可能です。現在サポートされている形式は、QImageReader およびQImageWriter クラスのドキュメントに記載されています。

Qtのプラグイン機構は、カスタム画像フォーマットハンドラの作成にも利用できます。これを行うには、QImageIOHandler クラスを継承し、QImageIOHandler オブジェクトを作成するためのファクトリであるQImageIOPlugin オブジェクトを作成します。プラグインがインストールされると、QImageReader およびQImageWriter は自動的にそのプラグインを読み込み、使用を開始します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.