2017-09-17 59 views
1

私のアプリケーションは巨大な画像(> 1 GB)を処理する必要があります。私の出発点は、QT5をインストールしたときにウィジェットフォルダにあるイメージビューアの例でした。この例の問題は、私が扱う必要があるような巨大な画像を操作するのには適していないようです。ズームインとズームアウト時には、更新が永遠に行われるため、ユーザーエクスペリエンスが十分ではありません。QTウィンドウに巨大な画像を読み込み、細かく拡大縮小できる

私はWindowsフォトアプリのようなものが必要です。画像をロードするのに時間がかかることがありますが、一度完了すると非常に高速にズームイン/ズームアウトできます。しかし、私はC++とQTを使ってそのようなアプリケーションを構築する必要があります。そのため、後で私はピクセル上で息子の計算を行うことができます。

このようなアプリケーション、つまり画像ローダーをQTライブラリで構築して、画像をスムーズにズームイン/ズームアウトできるようにすることができます。事前

答えて

0

おかげで、あなたはQGraphicsAreaを使用してみてもらえますか?

画像を小さなセクションに分割する方法を見つける。次に、グラフィックス領域のビューポートが変更されるたびに、表示されている四角形のみをグラフィックス領域にストリームします。

0

実際のアプリケーションがこれを処理する方法は、タイルマッピングとミップマップの組み合わせです。

技術的には、イメージの低解像度バージョンをイメージ内の未使用領域に、またはそれに隣接して配置していますが、アイデアはイメージの2つの解像度のすべてのパワーをキャッシュすることです。解像度を1ステップアップしてピクセル値を補間する。

タイルは、1つのバッファまたはスキャンラインではなく、むしろスキャンラインの矩形パッチとしてイメージを格納することを指します。これは局所性を改善する。数千ピクセルの間、1000の走査線セクションからサンプリングすると、キャッシュが破棄されます。

あなたが望むフレームレートを管理していない場合、低解像度のバージョンをレンダリングすることができます。そして、極端なパフォーマンスを得るための、おそらく他の、より美しい方法があります。

私はQtでこれを行う簡単な方法を知らない。

0

は、一般的に、あなたがバッファにファイルを読み込んで、長方形のグラフィックスにそれを分割し、それらをロードして表示し、より多くの画像が存在することになるとしても、大きなファイルのためにあなたがサムネイルを作成することができ大きなファイルを扱うための多くの解決策がありますファイルサイズの量を減らし、画質を維持するアルゴリズムを処理します。

QGraphicsviewと画像タイルのセットでは、すべてのスクロールとワールド座標が表示されます。
は、次に、あなただけの大きなファイルのためQOpenGLTextureでテクスチャの取り扱いについての詳細を見つけるためにthisの質問を参照してください事前にタイルにのいずれか事前にチョップイメージを持っているか、フライ

上の画像データの部分を引き出します。

関連する問題