問題タブ [qimage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
689 参照

image - 16 ビット ディスプレイのデバイスでの 32 ビット png 画像

32ビット画像を変換して16ビットディスプレイのデバイスに表示する方法を知っている人はいますか?

Qt QImage - QImage QImage::convertToFormatで 24 ビット イメージを作成しようとしました

結果の画像を保存しますが、取得した画像も32ビットでした(出力画像のプロパティ-ビット深度にこのデータが表示されます)

0 投票する
2 に答える
1564 参照

qt - QImage を不透明な領域にトリミングする方法は?

アルファチャンネルを持つ QImage がある場合、不透明領域のバウンディングボックスにトリミングされた新しい QImage を作成するにはどうすればよいですか?

0 投票する
1 に答える
1876 参照

qt - 画像の生データRosとQt

Gazeboでシミュレーションを行い、生の画像データを含む画像の生データトピックを公開しています。次に、そのデータをqtでビデオとして表示したいと思います。ビデオウィジェットとして何を使うべきかわかりません。私が念頭に置いているのは、graphicsSceneを作成し、データをQImageとして表示することですが、データの頻度が高すぎるため、その頻度でQImageにロードするのは良いアプローチではないようです。最適な提案を楽しみにしています。

ありがとう。

(ps私はqt4.xとRoselectricでlinux10.04を使用しています)

0 投票する
2 に答える
2215 参照

qt - 情報を失うことなくQImageの回転

GIF形式のサイズ12x12のQImageがあります。非常に高い周波数で特定の角度で回転させたいです。私のアプリケーションにはロボットが含まれているため、ロボットの向きが変わると(非常に頻繁に行われます)、シミュレーションのQImageも回転する必要がありますが、情報が失われます。私はそれを以下のようにやっています。

このアプローチの何が問題になっているのかという提案が必要です。次に、目的のアプリケーションに最適なアプローチは他にありますか?ありがとう

0 投票する
2 に答える
1233 参照

c++ - Qt/C++ DLL から Delphi ホスト アプリケーションにバイナリ データを渡す

プログラムでは、Delphi で QImage.bits() を使用したいと考えています。そのため、Qt で dll を作成しました。以下にリストされているdllソースコード:

test.h:

test.cpp:

Delphi 側では、Qt dll を使用するために次のコードを使用します。

dll 関数を呼び出すと、データが返されません! 手伝って頂けますか?

更新 1: 実際の状況では、私の Qt 関数は非常に複雑で、多くの理由で Delphi で記述できません。実際、元の機能はデバイスからスクリーンショットを取得し、メインメモリでそれを処理します。その結果、このイメージ バイトを Delphi に送信して TImage に表示し、ハードディスクや同様のメモリに保存しません。このトピックでは、単純なデバッグとテスト容易性のために単純な同様の関数を作成しました。この問題に対して真にシンプルなコードを書くことで私を助けることは可能ですか? どうもありがとう。(-_-)

0 投票する
4 に答える
26041 参照

c++ - QT QImage、RGBを抽出する方法は?

QImageの各ピクセルからRGBを抽出したいと思います。理想的には、img.bits()関数を使用したいと思います。

返されたビットを操作する方法は?写真はペイントで作成された真っ赤な画像なので、私はすべて赤を期待していました。しかし、私は36、27、237、255、36などを取得します...

0 投票する
3 に答える
4734 参照

c++ - QImage をより小さな断片に分割する

画像があり、この画像を n 個に分割したいと考えています。だから私が疑問に思っているのは、どうすればQImageでこれを行うことができるのでしょうか? または、このタスクに適した (パフォーマンスに関して) Qt クラスはありますか?

たとえば、1920x1080 ピクセルで構成される画像があり、それを 100 個に分割するとします。つまり、各部分は 192x108 ピクセルで構成されることになります。192x108 にスケーリングされた同じピースを作成したくないことに注意してください。各ピースは、メイン画像の個別のピースです。

ここに画像の説明を入力

質問を明確にするために画像を添付しました。この画像は 1920x1080 ピクセルで構成され、グリッドで分割された各部分は 192x108 ピクセルで構成されているため、実際には 100 個に分割せずに、それぞれを QImage オブジェクトとして扱いたいと考えています。

QImageでこれを行う方法はありますか? ここではパフォーマンスが重要です。なぜなら、各ピースを分析し、通常は 1000 ピース以上になるからです。

ご協力ありがとうございました!

編集:どちらの方法も完全に機能しますが、alexisdm の方法はもう少し複雑で、低レベルですが、より高速です。jmk の方法は使いやすいですが、遅くなります。

両方の答えをありがとう。

0 投票する
1 に答える
384 参照

qt - QPainter インスタンスが特定の .png を使用した場合にのみ描画されるのはなぜですか?

Qt Creator を使用して単純な「フロッガー」タイプのゲームを作成しています。4 つの方向キーで動作するプレーヤーと、画面上を自力で移動する車を手に入れることができました。Player、Car、および Frogger クラスを分けています。

Frogger クラスは、paintEventで画像をペイントします。

しかし、車の別の画像を読み込もうとすると問題が発生します。車とプレーヤー コンストラクターの両方に使用するimage.load("player.png");と、画面上を移動する車がプレーヤー イメージとして表示され、キーに従って移動するプレーヤーが表示されます。

ただし、画像を「car.png」などの他のもの(すべての画像は同じフォルダーにあります。「その他のファイル」の下にあるQt Creatorにも追加しようとしました)に置き換えると、表示されないようです。他の画像でも試してみましたが、プレイヤーにも表示されません。なぜこれが起こるのかについてのアイデアはありますか? 関数をコメントアウトしてautoMove()も何も変わらないので、移動の実装方法とは関係ないと思います。私が見逃している可能性のあるものについてのアイデアはありますか?

0 投票する
2 に答える
2116 参照

qt - Qt でカスタム ビデオ データをレンダリングする方法は?

私は Qt ビデオ アプリケーションを作成したことがありません。この分野の初心者です。Qt を使用してレンダリングするカスタム ビデオ ファイル形式があります。ビデオ ファイルの形式は、256 バイトのヘッダー、ピクセル データ、256 バイトのヘッダー、ピクセル データの順に続きます。ヘッダーは、幅、ピクセル単位の高さ、ピクセルあたりのバイト数、フレーム レートなどの情報で構成され、ピクセル データは Bayer (GBRG) 形式です。表示する前にデータを処理する必要があるかもしれません-RGBへの変換など(まだわかりません)。QGL*、QMovie、QVideo* などのビデオ関連のクラスがたくさんあるようですが、どこから始めればよいかわかりません。mandelbrotwidget の例を見たことがありますが、これは開始するのに適しているように見えますが、まだアドバイスが必要です。また、Bayer パターン用の Qt Image プラグインを作成する必要がありますか?

ありがとうございました。

0 投票する
2 に答える
611 参照

qt - uchar[] から作成された QImage のエンディアンはプラットフォームに依存しますか?

QImage には、既存のメモリ バッファから QImage を作成するコンストラクタ QImage (uchar *data, int width, int height, int bytesPerLine, Format format) があります。

バイト (uchars) の順序はプラットフォームに依存しますか? アルファ、赤、緑、青の値をインデックスの増加とともに入れると、アルファは青と交換され、赤は緑と交換されます。これは、エンディアンに問題があることを示しています。

エンディアンがプラットフォームに依存するかどうかは疑問です。Qtのドキュメントには、これについて何も書かれていません。

プラットフォームに依存しない場合は、値を格納する順序を変更するだけです。

プラットフォームに依存する場合、uint32 の配列を作成し、alpha << 24 | として計算された値を格納します。赤 << 16 | 緑 << 8 | 青、および QImage() コンストラクターに渡す前に配列を reinterpret_cast します。

よろしくお願いします、

イェンス