問題タブ [qpixmap]

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 投票する
4 に答える
2323 参照

c++ - QPixmap のハッシュを取得する最良の方法は何ですか?

Qt 4.5 を使用してグラフィックス アプリケーションを開発しており、画像を QPixmapCache に入れています。これを最適化し、ユーザーが既にキャッシュにある画像を挿入すると、それが使用されるようにしたいと考えました。

現在、各画像には一意の ID があり、ペイント イベントでの最適化に役立ちます。ただし、画像のハッシュを計算できれば、キャッシュを検索して、それが既に存在するかどうかを確認し、それを使用できることに気付きました (もちろん、オブジェクトの重複にはもっと役立ちます)。

私の問題は、その大きな QPixmap のハッシュ計算が遅くなるか、より速い方法があるかということです。

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

python - PyQt の setPixmap() が Pixmap で呼び出されると、「Python.exe」がクラッシュする

ソケットを使用して画像を相互に送受信するプログラムがあります。サーバーは「image.tostring()」を使用して画像データを送信し、クライアント側はそれを受信して​​「Image.fromstring」を使用して画像に戻し、「ImageQt.ImageQt(image)」を使用して QImage に変換します。 「QPixmap.fromimage(qimage)」を使用してQPixmapに変換し、「lable.setPixmap(qpixmap)」を使用してQWidgetのQLableの画像を更新します

小さな画像ではすべて正常に動作しますが、200x200 を超える画像では python.exe がクラッシュし、コンソールには「プロセスが終了コード -1073741819 で終了しました」と表示されるだけで、何が問題なのかわかりません。

問題を 'setPixmap()' に切り分けました (それをコメントアウトする限り、他のすべてが機能します) が、問題が何であるかわかりません。

これはクライアント側でのみ発生します。サーバー側では、Image から QImage、QPixmap、次に setPixmap へと同じ手順を使用しますが、問題はありません。

また、それをQBitmapにして、ビットマップでsetPixmapを使用しようとしましたが、うまくいきました(ただし、白黒なので使用できません)。変!

どんな助けでも大歓迎です!

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

c++ - QPixmap を JPEG に保存できない (Qt 4.5)

次のコードがあります。

したがって、パスは次のようになります。 - ファイル ダイアログがポップアップします - ユーザーが形式とファイルを選択します - システムが QPixmap にプロットを描画します - QPixmap をファイルに保存します。

PNG と BMP では問題なく動作しますが、JPEG、jpg、JPG などでは失敗します。

私はQtのドキュメント全体を調べましたが、詳細を見つけることができませんでした. それはうまくいくはずです。何か案は?

Windows 用の Qt 商用版 4.5.1 を使用しています。
dll を使用していますが、Qt がパスにありません。

他のライブラリで使用されている古典的なサードパーティの jpeg.lib (The Independent JPEG Group の JPEG ソフトウェア) に静的にリンクしていることに気付きました。

これが原因で衝突とか何かが起こる可能性はありますか?

または、単にプラグインが正しく読み込まれていない可能性があります。

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

python - ブロブ画像データを QPixmap にロードする

フロントエンド GUI に PyQt4 を使用してプログラムを作成しています。このプログラムはバックエンド データベース (MySQL または SQLite のいずれか) にアクセスします。データベースにいくつかの画像データを保存する必要があります。以下は、画像ファイル (JPEG 形式) をデータベースの BLOB データ フィールドにインポートするために使用する Python コードです。

この部分は正常に動作します。私の質問は、PyQt4 のデータベースに保存されている画像データから QPixmap オブジェクトを作成する方法についてです。私の現在のアプローチには、次の手順が含まれます。

(1) データベース内の Hex str -- cPickle&StringIO --> PIL Image Object

(2) PIL 画像オブジェクト --> 一時画像ファイル

(3) 一時画像ファイル --> QPixmap

このアプローチもうまく機能します。しかし、ユーザーの操作に対するプログラムの応答が遅くなる可能性がある一時画像ファイルの書き込み/読み取りを行う必要がない方がよいでしょう。QPixmap::loadFromData()を使用して、データベースに保存されているブロブ データから直接ロードできると思います。ここで誰かがこの関数の使用方法の例を示してくれることを願っています。

ティア、

ビング

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

qt - QPixmap :: fromImageのメモリリークを解決する方法は?

Qtに問題があります。

これが私を悩ませているコードの一部です:

そのため、このメソッドshowOnScreenはプライベートメソッドQImageIplImageCvtを使用して(OpenCVで使用される)から作成し、画像を全画面で表示するために作成するために使用されQImageます。クラスはを継承します。IplImageQPixmapFullScreenImageQLabel

少し遅れるとフルスクリーン画像が非表示になるはずなので、QTimer少し遅れてイベントをトリガーするために使用します。イベントハンドラはhideOnScreen、ラベルを非表示にし、メモリをクリアする必要があるメソッドです。

問題は次のとおりです。

を呼び出すたびにQPixmap::fromImage、ピックスマップデータ用のメモリが割り当てられ、データがQImageメモリバッファからメモリバッファにコピーされQPixmapます。ラベルが非表示になった後も、QPixmapデータは割り当てられたままになります。さらに悪いことに、新しいQPixmap::fromImage呼び出しの後、新しいメモリチャンクが新しい画像に割り当てられ、古いデータはメモリから解放されません。これにより、メモリリークが発生します(テスト画像では、メソッド呼び出しごとにcca 10 MB)。どうすればそのリークを解決できますか?

プライベートQPixmap変数を作成し、QPixmap::fromImageそれによって作成されたpixmapを格納してから、メソッドでそのデストラクタを呼び出そうとしましたhideOnScreenが、役に立ちませんでした。

QPixmapから作成する非静的な方法はありますQImageか?またはさらに良いことに、QPixmapから直接作成する方法はありIplImage*ますか?

よろしくお願いします。

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

c++ - begin の呼び出し時に QPainter が失敗する

QsplashScreen に PNG ファイルを描画しようとしています。経由でやろうとしていQPainterます。経由QPainterでやりたいのは、(消えるまで)スムーズに最小化したいからです。繰り返しているだけでは、まったく滑らかに見えません。

をコンストラクタに渡しましたQSplashScreen。e as パラメータを使用QPainterして begin() を呼び出すと、 assert で失敗します。を供給した場合も同様です。QPainterQSplashScreend->activeQpixmap

私は何を間違っていますか?QPainterの begin()を開始するにはどうすればよいですか?

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

qt - QPixmapオブジェクトをファイルに保存するには?

QByteArray データの読み取りとファイルへの書き込みに問題があります。

私の目標は、QPixmap データを QByteArray に保存し、その QByteArray をファイルに保存することです (この QByteArray をファイルから QPixmap に読み戻すことができます)。QPixmap ドキュメントから次のコードを使用したい:

バッファをファイルに書き込んだ後、QByteArray を取得し、QPixmap::loadFromData() 関数を使用して QPixmap にロードできるようにしたいと考えています。

さらに説明が必要な場合はお知らせください(私は別のアプローチも受け入れています。QPixmapをファイルに読み書きできるようにする必要があるだけです!:));

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

qt - QGraphicsView のスクロールと画像のスケーリング/トリミング

QGraphicsView に、スクロールバーやキーボードとマウスでスクロールせずに、常にビューポートのサイズに合わせて拡大縮小 (および必要に応じてトリミング) される背景画像が必要です。以下の例は、ビューポートで画像をスケーリングおよびトリミングするために行っていることですが、エーテルから引き出されたトリミングにランダムな値を使用しています。論理的な解決策が欲しいですか?

QGraphicsView のサイズを変更しても機能する QGraphicsView のサイズに合わせて画像をスケーリングおよびトリミングする方法を知りたいです。1.5 と 19 はどこから来たのですか?

編集; setBackgroundBrush も使用しようとしましたが、スケーリング/クロップされた QImage/QPixmap を使用している場合でも、タイル張りの背景が表示されます。

編集; これまでの私の解決策は、必要な結果を得るために drawBackground() をオーバーライドすることでしたが、それでも、画像を qgraphicsview のビューポート サイズに合わせてサイズ変更する方法を学ぶのには役立ちません。それ以上の回答は大歓迎です。

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

qt - jamvm1.5 + classpath-0.96 + qt4.3 QPixmap:GUIスレッドの外部でピックスマップを使用することは安全ではありません

私はQtを初めて使用しますが、対処方法がわかりません。

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

multithreading - QT-QImageとマルチスレッドの問題

みなさん、こんにちは。

http://i48.tinypic.com/316qb78.jpgの画像を参照してください。

電子顕微鏡のMRC画像から細胞のエッジを抽出するアプリケーションを開発しています。

MRCファイル形式はボリュームピクセルデータ(http://en.wikipedia.org/wiki/Voxel)を格納し、3D char配列(char ***)を使用してMRCファイルからデータ(グレースケール値)をロードおよび格納します。

画像に示されているように、XY、YZ、ZX平面をそれぞれ表示する3つのビューアがあります。ビューアの上部にあるスクロールバーは、軸に沿って画像スライスを変更するために使用します。

ユーザーがスクロールバーの位置を変更したときに実行する手順は次のとおりです。

1)新しいスクロールバーの値を取得します(これは選択されたスライスです)

2)関連平面(YZ、XY、またはZX)の場合、3D char配列(char ***)を読み取って、選択したスライスの(char *スライス;)配列を生成します。

3)新しいQImage *(Format_RGB888)を作成し、「slice」を読み取ってピクセル値を設定します(img-> setPixel(x、y、c);を使用)。

4)この新しいQImage *は、paintEvent()メソッドでペイントされます。

集中的なプロセスであるため、別のスレッドで「エッジ検出」プロセスを実行します。このプロセスでは、検出された曲線(ピクセルのセット)をQImage *の上に(レイヤーとして)描画する必要があります。これは、QTスレッドの外部でdrawPoint()メソッドを呼び出す必要があることを意味します。

この場合、QImageを使用するのが最善の方法ですか?

別のスレッドからQT描画メソッドを実行するための最良の方法は何ですか?

前もって感謝します、