2016-11-12 49 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#中的绘图模型略有不同。您不必在图形对象上设置资源(如颜色),而是创建资源,如PenBrush,这些资源具有属性,例如Color。然后使用这些对象在图像上绘图。

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

非常感谢布拉德利。 –

相关问题