情報詳細Q:C#でread_imageした後、disp_objすると、imageをDisposeしてもメモリが解放されません。HDevelop上でもread_image後、dev_clear_objをしても解放されず、メモリとして保持されている動きになりました。A:グラフィックスタックからの参照をクリアすることでメモリが解放されます。本質的には、HALCONウィンドウ自体のメモリは固定されており、表示される画像の大きさや、その上に重ねるオーバーレイの数に関係なく、画面上のウィンドウサイズ(ピクセル単位)のみに依存します。つまり、従来のHALCONウィンドウでは、原理的には、ウィンドウに好きなだけ描画することができ、オブジェクトが消えた後でもそれらのオブジェクトが表示されたままになります。しかし、アイコンデータを別の部分で再描画(例:ズーム、移動、サイズ変更)するには、HSmartWindowControlは元のデータ(完全なドメインイメージ+任意の数の領域、xld、または部分的なドメインイメージ)を保持する必要があります。これはグラフィックススタックと呼ばれ (set_window_param演算子を参照)、 HDevelopのグラフィックスウィンドウ及びHSmartWindowControlではデフォルトで有効になっています。画像オブジェクトに割り当てられたメモリを完全に解放するには、HSmartWindowControl が元のオブジェクトを破棄する以外に、ピクセルデータへの参照を保持していないことを確認する必要があります。これは次の方法で実行できます。 HSmartWindowControl.HalconWindow.ClearWindow(); または、次のコマンドを使用してグラフィック スタックを完全に無効にすることもできます。 TestControl.HalconWindow.SetWindowParam("graphics_stack", "false"); ただし、グラフィック スタックはこれらのウィンドウをインタラクティブに保つための重要な部分であり、無効化するとズーム、パン、サイズ変更などに応答しなくなるだけでなく、状況によってはウィンドウが黒くなる可能性があることに留意してください。 添付ファイルタイトルH(Smart)WindowControlに表示されるアイコンオブジェクトのメモリ解放についてURL 名000011811公開状況公開済み検証状況未検証