2016-11-12 1 views
0

C#でグラフィックスの色を設定する方法は?
SetColorメソッドが機能しません。C#のグラフィックスで色を設定する方法

次のJavaコードをC#に変換するにはどうすればよいですか?

private Graphics g1; 

g1.setColor(Color.getHSBColor(h, 0.8f, b)); 
Color col = Color.getHSBColor(h, 0.8f, b); 
int red = col.getRed(); 
int green = col.getGreen(); 
int blue = col.getBlue(); 
+1

'Color'と' Graphics'のそれらの関数名はJavaクラスのものと同じように見えますが、あなたの質問はC#です。 –

+0

それはあなたのC#のコードは本当ですか? –

+0

j ++から 'java.awt.Graphics'を使っていると思います。 –

答えて

0

C#の描画モデルは若干異なります。グラフィックオブジェクトに色などのリソースを設定する代わりに、、またはColorのようなプロパティを持つBrushなどのリソースを作成します。これらのオブジェクトを使用して画像を描画します。

Graphics g = Graphics.FromImage(someBitMap); //create a graphics object for an existing BitMap 
Color c = new Color(255,0,0); //a "red" color 
Pen p = new Pen(c); //create a Pen using the Red color from earlier 
p.Width = 5; //Pen is 5 pixels wide 

g.DrawLine(p, 0,0,100,100); //draw a diagonal line 

//Get rbg values. 
int r = c.R; 
int g = c.G; 
int b = c.B; 

//It is VERY important to call `.Dispose()` on GDI objects. They contain unmanaged system resources that can, and will, leak if you don't. 
g.Dispose() 
p.Dispose() 

HSBの色空間からRGBに色を変換しようとしているようです。残念ながら、これは.NETではネイティブにサポートされていません。次のブログ記事はあなたのためにできるコードをいくつか持っています:https://blogs.msdn.microsoft.com/cjacks/2006/04/12/converting-from-hsb-to-rgb-in-net/

+0

ありがとう、Bradley。 –

関連する問題