Greyscale bars/Display: Difference between revisions

→‎{{header|C sharp|C#}}: removing some repetition from c# version
(→‎{{header|C}}: Adding C# Version)
(→‎{{header|C sharp|C#}}: removing some repetition from c# version)
Line 257:
using System.Drawing;
using System.Windows.Forms;
static class Program { static void Main() { Application.Run(new FullScreen()); } }
{
static void Main()
{
Application.Run(new FullScreen());
}
}
public sealed class FullScreen : Form
{
const int ColorCount = 256;
public FullScreen()
{
Line 273 ⟶ 268:
BackgroundImage = ColorBars(Screen.FromControl(this).Bounds);
}
private static Bitmap ColorBars(Rectangle screensize)
{
intvar widthcolorBars = screennew Bitmap(size.Width, height = screensize.Height);
Func<int, int, int> forwardColor = (x, divs) => (int)(x * ((float)divs / size.Width)) * ColorCount / divs;
var colorBars = new Bitmap(width, height);
Func<int, int, int> reverseColor = (x, divs) => ColorCount - 1 - forwardColor(x, divs);
var colorLimit = 256;
Action<int, int, int> setReversesetGray = (x, y, gray) => colorBars.SetPixel(x, y, Color.FromArgb(reverseColor()gray, reverseColor()gray, reverseColor()gray));
int stripeHeight = height/4;
forAction<int, (int, xint> setForward = 0; (x, <y, width;divs) => setGray(x++, y, forwardColor(x, divs));
Action<int, int, int> setReverse = (x, y, divs) => setGray(x, y, reverseColor(x, divs));
int verticalStripe = size.Height / 4;
for (int yx = 0; yx < stripeHeightsize.Width; yx++) setForward(y);
{
for (int divisionsy = 0; y < verticalStripe; y++) setForward(x, y, 8);
for (int y = stripeHeightverticalStripe; y < stripeHeightverticalStripe * 2; y++) setReverse(x, y, 16);
Func<int> forwardColor = () => x/(width/divisions)*(colorLimit/divisions);
Func<for (int> reverseColory = ()verticalStripe =>* colorLimit2; -y 1< -verticalStripe forwardColor* 3; y++) setForward(x, y, 32);
Action<for (int> setForwardy = verticalStripe * 3; y =>< colorBars.SetPixel(x,verticalStripe * 4; y,++) Color.FromArgbsetReverse(forwardColor()x, forwardColor()y, forwardColor())64);
Action<int> setReverse = y => colorBars.SetPixel(x, y, Color.FromArgb(reverseColor(), reverseColor(), reverseColor()));
 
for (int y = 0; y < stripeHeight; y++) setForward(y);
divisions = 16;
for (int y = stripeHeight; y < stripeHeight*2; y++) setReverse(y);
divisions = 32;
for (int y = stripeHeight*2; y < stripeHeight*3; y++) setForward(y);
divisions = 64;
for (int y = stripeHeight*3; y < stripeHeight*4; y++) setReverse(y);
}
return colorBars;