問題タブ [stretchdibits]

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 に答える
548 参照

gdi - GDI HDC の描画可能領域を設定するには?

HBITMAP を HDC に描画したいのですが、

私は StretchDIBits を使用しました。それは正常に動作します。::StretchDIBits.

ただし、描画結果をウィンドウで監視したいだけで、ウィンドウの横で、stretchDIBits が何の効果も受けないようにしたいのですが (他の領域には描画できません)、どうすればよいですか?

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

gdi - StretchDIBits でサムネイルの周りの影を模倣する方法は?

現在、画像ビューアを作成しています。これは、サムネイルの表示に使用されます。見苦しいので、サムネイルに丸い影を描くことにしました。

背景色あり。StretchDIBits を使用して、サムネイルの位置に影の画像を描画しています。ただ、背景色が被ってしまうのは本当に困ります…背景が白だと綺麗に見えます。ただし、背景が白でない場合は、白い境界線が表示されます。

そこで私は AlphaBlend を利用し、最初に影の画像を DC に描画し、次に AlphaBlend を背景に使用します。ただし、まだ白い枠が見えます。

背景が何であれ、完璧な影を生成する理由はありますか?

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

gdi - StretchDIBitsは遅いようですが、より高速なAP​​Iはありますか?

同じサイズのHDCにディブを描きたいです。私が使用しているのは:desとsrcが同じサイズです。

しかし、desサイズが同じであるため、遅いと思います。ディブをDCにコピーする必要があります。StretchDIBitsよりも高速なメソッドはありますか?

同じように

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

c++ - スケーリングに StretchDIBits を使用して GDI+ グラフィックス オブジェクトにビットマップを描画する

DrawImage メソッドを使用してグラフィックス オブジェクトにビットマップ イメージを描画していますが、イメージが大量にあるため、描画に時間がかかりすぎています。このフォーラムで、StretchDIBits を使用すると描画にかかる時間が短縮されることを読みました。Drawimage を呼び出して画像をスケーリングしていますが、他の効率的な方法が必要です。Bitmap* の Vector があり、各 Bitmap をグラフィックスに描画したいと考えています。

m_vImgFrames は を含む画像ベクトルですBitmap*。から HBITMAP を取得しましたBitmap*

この HBITMAP を使用して、orghDC と最終的にグラフィックスに描画したいと考えています。したがって、StretchDIBits を使用して Bitmap をスケーリングし、最終的に Graphics Object を描画する方法を知りたいです。

私はこのフォーラムを初めて利用します。アイデアやコードは役に立ちます

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

integer - StretchDIBitsが部分的に画像が揺れる

DCで画像を描画するためにC++GDI、StretchDIBitsを使用しています。

元の画像が大きいため、高品質が必要です。私はHAFTONEモードを使用して、DCに画像全体を描画する(画像をズームする)のに時間がかかるようです。

そこで、StretchDIBitsを使用して部分的に描画することにしました。しかし、StretchDIBitsには深刻な問題があります。

整数の長方形を整数の領域にのみ描画できます(幅と高さ、およびx、yの左上の点はすべて整数です)

の場合、画像は21*21です。私は今、(5、5、7、7)をDCに(20、20、60、60)で描いています。次に、(21、20、61、60)で描きたいと思っています。元の画像に対応する場所がありません。したがって、DCに近似直線を描くことしかできません。今問題が起こっている、画像が揺れている!

私はその問題に悩まされています。どうすれば揺れを防ぐことができますか?

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

performance - DrawDib StretchDIBits どちらが速いですか?

DrawDib API を使用したことがありません。アプリケーションの UI レンダリングは、stretchDIBits に基づいています。描画する大きな画像が本当にたくさんあるので、stretchDIBits (より良いレンダリング結果を得るために HAFTONE が使用されます) のパフォーマンスは悪いです...

DrawDib は、DIB を DC に描画するための効率的な API のグループであると聞きました。それはstretchDIBitsよりも優れていますか?

誰かがそれらの比較ドキュメントをくれますか? 質問がばかげている場合は、申し訳ありません。私はこれについて本当にほとんど経験がありません。

前もって感謝します。

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

c++ - StretchDIBits が失敗し、何も描画されないことがあります。

gdi c++ を使用しています。7000*5000 などの大きな画像を描画すると、StretchDIBits 関数が失敗することがありました。何も描画しません。GetLastError() は、十分なシステム リソースがないことを示しています。DCが正常に準備されていても、StretchDIBitsにリソースが必要な理由を誰でも説明できますか?

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

c++ - LoadImage と StretchDIBits を使用して PNG 画像を描画するにはどうすればよいですか?

(これは、Win32/GDI (可能であれば GDI+ なし) を使用して PNG 画像を読み込むにはどうすればよいですか?に関する質問に関連しています。)

こんにちは、みんな、

ID を持つバイナリ ファイルに埋め込まれた PNG リソースがIDB_PNG1あり、LPDRAWITEMSTRUCT描画する (つまりHDC、ターゲットの四角形があることを意味します) ことを考えると、StretchDIBits? 私はBitBltTransparentBlt以前に作業しましたがStretchDIBits、動作が異なるLoadImageようで、PNG では動作しないようです。

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

(注: 私が入れた言語は C++ ですが、それはそれほど重要ではありません... C、C#、Visual Basic などでも問題ありません。必要な正確なコードではなく、手順を理解しようとしているだけです。)

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

c++ - フルスクリーンに移動してC++/CLIに戻った後に画像を再描画する

StrechDIBitsを使用してラベルのhdcに生のビットマップ画像をペイントするアプリケーションを構築しています。

このようにして、ビデオストリーム全体を、ストリームから次々と画像を描画します。これは完璧に機能します。フルスクリーンを実現するために、フォームとラベルを画面全体にサイズ変更する機能もあります。wchichはビデオの再生にも最適です。

しかし、ビデオを停止するか、1つの画像のみを送信して、完全な画面機能を呼び出すと、それは画像を塗り直しません、そしてそれは私の問題です。サイズ変更後に画像を再度ペイントするために、フォームとラベルの両方でペイントイベント、サイズ変更イベントを使用しようとしましたが、何も機能しません。フルスクリーンまたは通常のサイズに戻ると、画像が短時間点滅しますが、その後、コントロールの色で再描画されて消えます。StretchDIBitsを使用してペイントコードをどこにでも配置しようとしましたが、どちらも機能しません。どんな助けやアドバイスも本当にありがたいです。

編集:私にとって悲しいことは、たとえば、ラベルのクリックイベントにペイントコードを入れると、正常に機能することです...

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

mfc - StretchDIBits によって変更されたビューで元のピクセルにアクセスする方法

レガシ アプリケーションのビューは、StretchDIBits を使用して画像を表示しています。StretchDIBits に慣れていない場合は、MFC ビューで特定のサイズの画像を別のサイズに表示するために使用されます。たとえば、サイズ (128,120) の画像は、関数を使用して (512,512) に表示できます。

ディスプレイの幅または高さが画像の倍数である単純な条件では、ディスプレイの位置から元の画像のピクセルの位置を問題なく計算できます。しかし、それ以外の場合、特に2つのサイズの間に倍数がない場合、StretchDIBitsが元の画像から指定されたサイズの長方形を表示するためにピクセルをどのように分配するかを知る必要があると思います.