2012-06-26 78 views
0

我想在运行时设置图像的阈值。目前我的代码如下所示:跟踪栏的阈值图像

ImageAttributes imageAttr = new ImageAttributes(); 
imageAttr.SetThreshold(kryptonTrackBar1.Value/100); 

System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(pictureBox3.Image); 
Graphics g = System.Drawing.Graphics.FromImage(bmp); 
g.DrawImage(bmp, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, 
       bmp.Width, bmp.Height, GraphicsUnit.Pixel, imageAttr); 
pictureBox1.Image = bmp; 

picturebox3包含黑白图像。问题出在imageAttr.SetThreshold(kryptonTrackBar1.Value/100);行内。

我的trackbar max是100,最小值是0. 所以我最终会得到类似于0.07等数值,而滚动trackbar,但trackbar只返回0和1的值! 1如果我一直向右滚动!

它有什么问题?

+0

请参阅 “[堆栈溢出不允许在标题标签(http://meta.stackexchange.com/a/130208)”。 –

回答

3

如何

imageAttr.SetThreshold((float)kryptonTrackBar1.Value/100.0f); 
+0

就是这样!非常感谢你!我是新来的c#(vb.net背景)。 – Euro2012

+0

是的。您尝试将整数值1 - 100除以整数值100,结果始终为0或1.它们必须转换为浮点数,以便.NET知道您需要浮点除法。 – Jaska