問題タブ [picturebox]
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.
c# - c# ピクチャーボックスのメモリ解放の問題
私はC#の初心者です。ワーカー スレッドで GUI ピクチャ ボックスを繰り返し更新する必要があります。画像は、表示する画像を取得する GetImage メソッドを使用してドライバーをポーリングするカメラから取得されます。ディレクティブ「using」を使用してビットマップを割り当て、明示的にGCを呼び出しても、メモリの割り当てが解除されることはないようです。
ワーカー スレッドは次のようなものです。
DrawPicture メソッドは次のようなものですが、
問題は
pic.Image = System.Drawing.Image.FromHbitmap(bmp.GetHbitmap());
実際、そのコード行にコメントすると、ガベージ コレクションは通常どおりに機能します。より良い、問題は
System.Drawing.Image.FromHbitmap(bmp.GetHbitmap())
このメモリリークを解決するためのアドバイスはありますか?
どうもありがとう!
winforms - データグリッドビューに画像を表示する場合は、winform .net の最良の方法
net webdeveloper であり、通常は win32 アプリを作成しません。しかし今、私はしなければなりません。私は約2000のエントリを持つリストを持っています。各エントリは、テキストボックスのラベルと別のラベルと画像として表示する必要があります。私はflowlayoutpanelでこれを作成し、エントリに対してforeachを実行して、ラベル、テキストボックス、ラベル、およびピクチャボックスを使用して各エントリのパネルを作成しました。
1000 エントリを超えると、レンダリングの問題が発生します。リストビューまたはデータグリッドビューを使用する必要があることを読みました。
今、私は次のようなデータグリッドビューを持っています:
しかし、データグリッドビューのビットマップは本当に遅いです! 私が以前持っていたピクチャボックスオプションとパネルは、はるかに高速です。どうすればこれを解決できますか?
2 番目の質問は、2 番目の列で行われた変更を追跡する場合、どのイベントが必要かということです。
1 つ: 画像はオンラインで入手できるので、「pd.ProductImage」は URL です。
c# - PictureBoxで描画する場合、PictureBox.Refresh()は低速です
Visual Studio 2008にWindowsフォームアプリケーションがあります-PictureBox.Refesh()メソッドを使用すると、PictureBoxに描画するときに遅延が発生します。遅滞なく同じ結果が得られる方法はありますか?
c# - パネル内の動画ボックス
私は C#、WindowsForms でプロジェクトを持っており、親よりもはるかに大きい panelを含むを作成しました。pictureBox
私がpanel.AutoScrollやりtrueたいのは、スクロールをキャッチして移動するのではなく、 pictureBoxこれをドラッグすることです。panel
panelつまり、画像を取得してカーソルを左右に移動すると、のスクロールで行うのと同じ動作が得られます。
どうやってするの ?
c# - C# Panel.BackgroundImage + 透明コントロール = ちらつき?
私はPaneljpg BackgroundImage(とBackgroundImageLayout = Stretch)を持っています。パネルでは、透明な境界線を持つ PNG をControlsいくつか追加します。PictureBoxesこれを表示しても問題はありませんが、移動 (ボックスはドラッグ可能) すると問題が発生PictureBoxesします。
その結果、移動によって がPictureBox「妨害」され、BackgroundImageパフォーマンスが低下します。ボックスをドラッグする速度が速ければ速いほど、 が妨げられ、BackgroundImage逆もまた同様です。
この問題を解決するには?
.net - アニメーションGIFを含むPictureBoxをロードした後、「GDI+で一般的なエラーが発生しました」
.NET 2.0にWindowsフォームアプリケーションがあり、フォームにPictureBoxがあり、PictureBoxのImageLocationプロパティを設定して、アニメーションGIFをロードします。アニメーションが次のフレームをレンダリングする時間になると、次の例外とスタックトレースが発生します。
c# - PictureBoxのグラフィックスの透明度
まず第一に、これはPictureBoxコントロールを透過的にすることではありません。それは完全に不透明な「キャンバス」のビットマップの透明性についてです。
PictureBoxのサイズは常に300*300で、背景は白です。コントロールに透明度は必要ありません。
必要なのは、透明な長方形(またはその他のもの)をpictureBoxに描画する方法です。これにより、既に存在するものはすべて、長方形の「透けて」見えるようになります。
次のコードがあるとしましょう
これにより、白いキャンバスの中央に赤い長方形が描画されます。ここで、別の長方形を含む画像に別の(透明な)「レイヤー」が必要ですが、透明なものが必要です。
私は試すことができます
alpha = 128を指定して色を使用しているので、結果の長方形は透明になり、最初の赤い長方形がこの他の緑の長方形を通して見えるようになります。
ただし、これは正しく行われません。新しい緑色の長方形の後ろに赤い長方形が見えますが、緑色の長方形の赤い長方形と重ならない部分は完全に不透明なままです。ただし、色のアルファ値を非常に小さい値(たとえば、1〜5)に設定すると、長方形全体が透明に見えます。これは私の意見では正常ではありません-5/255は半分しか透明ではなく、128/255はまったく透明ではありません...そしてg.DrawString()で以前に描画された文字列があった場合、その文字列は後ろに表示されます透明度のレベルに応じて、緑色の長方形またはそうではありません。たとえば、アルファが40以上(約)の場合、文字列はまったく表示されません。40未満の場合、アルファ= 0まで、アルファ値が小さいほど表示されます。
このブラシ(Argbカラーから作成された場合)はどのように適用されますか?私は何かが足りないのですか?私には、透明なブラシを設定すると、オブジェクトを「見えにくく」するのではなく、背景を「見やすく」するように見えます。
提案のある返信をありがとう。
[編集]アプリケーションロジックに厄介なバグがあったようで、描画ルーチンがループで発生したため、一定数の透明な長方形を蓄積すると、それらはますます厚くなりました。
コードをループから外すと、正しく機能します。
私の悪い。
c# - WinForm: マウスをドラッグすると選択ボックスがちらつく
画像ボックスにクリックアンドドラッグ選択ボックスを作成しました。ピクチャーボックスで私が使用するペイントイベントハンドラー
長方形を更新し、マウス移動イベント ハンドラーでピクチャ ボックスを更新します。
選択ボックスは、マウスが右下隅にある限り滑らかに見えます (つまり、右/下にドラッグします)。ただし、マウスを左または上にドラッグしたい場合は、rectangle.X/rectangle.Y を常に再設定する必要があり、ボックスがちらつきます。
描画を行うためのより良い/より効率的な方法はありますか? とても有難い!
c# - 画像を読み込み、数秒待ってから mp3 サウンドを再生する方法は?
ボタンを押した後、(picturebox を使用して) 画像を表示し、数秒待ってから mp3 サウンドを再生したいのですが、うまくいきません。数秒待つには、 を使用しますSystem.Threading.Thread.Sleep(5000)。問題は、画像は常に待機時間の後WaitOnLoad = trueに表示されることですが、最初に表示してから待機してからmp3を再生したい...使用しようとしましたが、最初に画像をロードする必要はありません次のコード行を読み続けますか?
これが私が試したコードです(動作しません):
また、「LoadAsync」で画像を読み込んで、「LoadCompleted」イベントでmp3を待機して再生するコードを配置しましたが、それも機能しません...
c# - PNG画像を画像ボックスに動的に追加しますか?
アルファチャンネルを含むPNG画像をコードで動的に画像ボックスに追加することはできません。これは、透明な領域が常に黒色に置き換えられるためです。それを行う方法はありますか?