Rev 810 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Imaging;
using System.Runtime.InteropServices;
namespace ColorPicker
{
public partial class ColorWidget
: UserControl
{
private Bitmap mGradientBox
= null;
public ColorWidget
()
{
InitializeComponent
();
mGradientBox
= new Bitmap
(200,
200);
Rectangle rect
= new Rectangle
(0,
0,
200,
200);
BitmapData data
= mGradientBox
.LockBits(rect,
System.Drawing.Imaging.ImageLockMode.ReadWrite,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
IntPtr ptr
= data
.Scan0;
int bytes
= data
.Stride * mGradientBox
.Height;
var rgbValues
= new byte[bytes
];
/*for (int i = 0; i < bytes; i++)
{
rgbValues[i] = (byte)((i * 255) / (3 * bytes));
}*/
int width
= data
.Stride / 3;
int height
= mGradientBox
.Height;
int i
= 0;
float h
= 0;
for (int x
= 0; x
< width
; x
++)
{
for (int y
= 0; y
< height
; y
++)
{
float s
= (float)x
/ (float)width
;
float v
= (float)y
/ (float)height
;
MathUtil
}
}
Marshal
.Copy(rgbValues,
0, ptr, bytes
);
mGradientBox
.UnlockBits(data
);
}
private void colorWheelBox_Paint
(object sender, PaintEventArgs e
)
{
Graphics g
= e
.Graphics;
g
.DrawString("This is a diagonal line drawn on the control",
new Font
("Arial",
10),
System.Drawing.Brushes.Blue,
new Point
(30,
30));
g
.DrawLine(System.Drawing.Pens.Red, colorWheelBox
.Left, colorWheelBox
.Top, colorWheelBox
.Right, colorWheelBox
.Bottom);
Rectangle rect
= new Rectangle
(10,
10, Width
- 20, Height
- 20);
g
.DrawImage(mGradientBox, rect
);
}
}
}