問題タブ [gdi+]
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.
windows - グラデーション付きポリライン
線の方向に垂直な方向に勾配が変化する曲線パスに沿って線を描く方法はありますか? グラフィックに GDI+ フレームワークを使用しています。
c# - スクロール時にWindows.Formsカスタムコントロールのちらつきをなくすには?
C# でカスタム コントロールを作成したいと考えています。しかし、コントロールを完全に再描画する必要があるたびに、ダブル バッファリング (最初にイメージに描画し、それをブリット) を使用しても、ちらつきます。
完全に再描画する必要がある場合、ちらつきをなくすにはどうすればよいですか?
c# - C#/dot-NET のフォント レンダリング ライブラリ?
dot-NET アプリケーションでテキストを任意に拡大縮小および回転するための無料のサードパーティ ライブラリはありますか? ネイティブ GDI+ ではテキストの拡大縮小と回転が可能ですが、レンダリングされたテキストの寸法を決定する方法は十分に正確ではなく、テキストがレンダリングされた文字列に追加されるときのカーニングの違いにより、特定の種類のソフトウェアでの使用には適していません (たとえば、グラフィック編集ソフトウェア)。
要件:
- ネイティブ .NET コード。
- テキストの任意のスケーリングと回転。
- 正確なテキスト メトリック。
- 文字列の長さに関係なく、一貫したカーニング。
c# - GDI の DC として既存のメモリ バッファーをラップする方法
画面の解像度 (24 ビット/ピクセルで 1280x800) に対応するメモリ バッファーがあり、24bpp の画面コンテンツが含まれています。これを 8 bpp (つまり、Windows のハーフトーン カラー パレット) に変換したいと考えています。私は現在これを行っています: 1. CreateDIBSection を使用して新しい 1280x800 24 bpp バッファーを割り当て、DC およびプレーン メモリ バッファーとしてアクセスします 2. memcpy を使用して、元のバッファーからステップ 1 のこの新しいバッファーにコピーします 3 . BitBlt を使用して GDI に色変換を実行させる
ステップ 2 の余分な memcpy を避けたいと考えています。これを行うには、次の 2 つの方法が考えられます。
を。元の mem buf を DC にラップして、そこから直接 BitBlt を実行します
b. 独自の 24 bpp から 8 bpp への色変換を記述します。Windows がこのハーフトーン カラー変換をどのように実装しているかについての情報が見つかりません。それに、わかったとしても、BitBlt がアクセスできる GDI のアクセラレーション機能を使用するつもりはありません。
では、(a) または (b) のいずれかを行うにはどうすればよいでしょうか。
ありがとう!
c# - .NET 用の f/oss GDI+ (System.Drawing) ベースのグラフ作成およびチャート作成コンポーネントとして優れているものは何ですか?
.NET 3.5 WinForms 用の基本的な折れ線グラフ、棒グラフ、円グラフ、および面グラフを作成したいと考えており、それを達成するのに役立つ、無料で成熟したオープンソースの .NET (できれば C# ベースの) プロジェクトを見つけることに興味があります。私は WPF ベースのプロジェクトを検討しますが、GDI+ の方が快適なので、System.Drawing および/または GDI 相互運用を基本テクノロジとして使用したいと考えています。
ありがとう!
c# - LinearGradientBrushアーティファクトの回避策?
.netのLinearGradientBrush(またはGDI +全体でも?)には重大なバグがあるようです。アーティファクトが発生することがあります。(ここまたはここを参照してください-基本的に、線形グラデーションの最初の線はエンドカラーで描画されます。つまり、白から黒へのグラデーションは黒の線で始まり、次に適切な白から黒のグラデーションで始まります)
誰かがこれの回避策を見つけたのだろうか?これは本当に厄介なバグです:-(
これがアーティファクトの写真です。2つのLinearGradientBrushesがあることに注意してください。
代替テキストhttp://img142.imageshack.us/img142/7711/gradientartifactmm6.jpg
gdi+ - MeasureString()は、テキストを左右に埋め込みます
C++でGDI+を使用しています。(この問題はC#にも存在する可能性があります)。
Graphics :: MeasureString()またはGraphics :: DrawString()を呼び出すと、文字列の左右に空白が埋め込まれることに気付きました。
たとえば、Courierフォント(イタリックではありません!)を使用していて、「P」を測定すると90になりますが、「PP」では150になります。モノスペースフォントでは、「PP」の幅がちょうど2倍になると思います。 。
私の質問は、これは意図された、または文書化された動作ですか、そしてこれを無効にするにはどうすればよいですか?
c# - GDI+/C#:画像をEMFとして保存するには?
Image.Save メソッドを使用してイメージを EMF/WMF に保存すると、例外が発生します ( http://msdn.microsoft.com/en-us/library/ktx83wah.aspx ) 。
画像を EMF/WMF に保存する別の方法はありますか? 利用可能なエンコーダはありますか?
c# - GDI+ で 2 つの線の交点を特定するにはどうすればよいですか?
私は .NET を使用して、Visio に似た描画面を持つアプリケーションを作成しています。UI は、画面上の 2 つのオブジェクトを Graphics.DrawLine で接続します。この単純な実装は問題なく機能しますが、表面がより複雑になるにつれて、オブジェクトを表現するためのより堅牢な方法が必要になります。これらの堅牢な要件の 1 つは、2 つの線の交点を決定することです。これにより、何らかのグラフィックで分離を示すことができます。
だから私の質問は、誰かがこれを行う方法を提案できますか? おそらく、別の手法 (GraphViz など) またはアルゴリズムを使用しているのでしょうか?
image - GDI+ を使用して ARGB ビットマップを描画するには?
タイプの有効なHBITMAP
ハンドルがありARGB
ます。GDI+を使用して描画するには?
私は方法を試しました:
ただし、アルファチャンネルは使用しません。