HSLDialog.cs
Description du code
HSLDialog.cs est un fichier du projet BrolDev.Ce fichier est situé dans /var/www/bin/sniplets/bibliobrol/broldev/src/.
Projet BrolDev : Librairie de composants réutilisables pour les applications BrolDev en CSharp.
Code source ou contenu du fichier
Code c# (HSLDialog.cs) (283 lignes)
using System; using System.Drawing; using System.Drawing.Imaging; using System.Windows.Forms; using be.gaudry.model.drawing.colors.converter; namespace be.gaudry.view.dialogs { public partial class HSLDialog : Form { private Bitmap hue; private Bitmap saturation; private Bitmap luminance; private Bitmap RGB; private bool keyIsDown = false; private byte red, green, blue; private int initialHue = 180, initialSat = 50, initialLum = 50; public HSLDialog() { InitializeComponent(); SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw | ControlStyles.DoubleBuffer | ControlStyles.UserPaint, true); initBars(); } private void initBars() { hueSlider.Value = initialHue; hueText.Text = initialHue.ToString(); satSlider.Value = initialSat; satText.Text = initialSat.ToString(); lumSlider.Value = initialLum; lumText.Text = initialLum.ToString(); Graphics gr = Graphics.FromImage(hue); for (int i = 0; i < 360; ++i) { } huePicBox.Image = hue; drawBars(); } private void drawBars() { Graphics g = Graphics.FromImage(saturation); float h = (float)hueSlider.Value; for (int i = 0; i < 360; ++i) { } satPicBox.Image = saturation; Graphics gl = Graphics.FromImage(luminance); float s = (float)satSlider.Value / 100.0f; for (int i = 0; i < 360; ++i) { } lumPicBox.Image = luminance; Graphics rgb = Graphics.FromImage(RGB); float l = (float)lumSlider.Value / 100.0f; RGBPicBox.Image = RGB; redLabel.Text = String.Format("Rouge : {0}", rgbFinal.R.ToString()); greenLabel.Text = String.Format("Vert : {0}", rgbFinal.G.ToString()); blueLabel.Text = String.Format("Bleu : {0}", rgbFinal.B.ToString()); red = rgbFinal.R; green = rgbFinal.G; blue = rgbFinal.B; } private void changeHueAction(object sender, System.EventArgs e) { if (!keyIsDown) { hueText.Text = (hueSlider.Value).ToString(); drawBars(); } } private void hueText_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (!Char.IsControl(e.KeyChar)) { if (!Char.IsDigit(e.KeyChar)) { e.Handled = true; return; } if (hueText.Text.Length > 0) { string s = hueText.Text.Substring(0, hueText.SelectionStart); s += e.KeyChar; int sub = hueText.SelectionStart + hueText.SelectionLength; s += hueText.Text.Substring(sub, hueText.Text.Length - sub); int n = Convert.ToInt16(s); if (n > 359) { e.Handled = true; return; } keyIsDown = true; hueSlider.Value = n; keyIsDown = false; } } drawBars(); } private void changeSatAction(object sender, System.EventArgs e) { if (!keyIsDown) { satText.Text = satSlider.Value.ToString(); drawBars(); } } private void satText_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (!Char.IsControl(e.KeyChar)) { if (!Char.IsDigit(e.KeyChar)) { e.Handled = true; return; } if (satText.Text.Length > 0) { string s = satText.Text.Substring(0, satText.SelectionStart); s += e.KeyChar; int sub = satText.SelectionStart + satText.SelectionLength; s += satText.Text.Substring(sub, satText.Text.Length - sub); int n = Convert.ToInt16(s); if (n > 100) { e.Handled = true; return; } keyIsDown = true; satSlider.Value = n; keyIsDown = false; } } drawBars(); } private void changeLumAction(object sender, System.EventArgs e) { if (!keyIsDown) { lumText.Text = lumSlider.Value.ToString(); drawBars(); } } private void lumText_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (!Char.IsControl(e.KeyChar)) { if (!Char.IsDigit(e.KeyChar)) { e.Handled = true; return; } if (lumText.Text.Length > 0) { string s = lumText.Text.Substring(0, lumText.SelectionStart); s += e.KeyChar; int sub = lumText.SelectionStart + lumText.SelectionLength; s += lumText.Text.Substring(lumText.SelectionStart + lumText.SelectionLength, lumText.Text.Length - sub); int n = Convert.ToInt16(s); if (n > 100) { e.Handled = true; return; } keyIsDown = true; lumSlider.Value = n; keyIsDown = false; } } drawBars(); } #region properties public Color SelectedColor { get { return Color.FromArgb(red, green, blue); } set { hueSlider.Value = (int)hsl.Hue; satSlider.Value = (int)(hsl.Saturation * 100); lumSlider.Value = (int)(hsl.Luminance * 100); } } /* public int H { get { return initialHue; } set { initialHue = value; drawBars(); } } public int S { get { return initialSat; } set { initialSat = value; drawBars(); } } public int L { get { return initialLum; } set { initialLum = value; drawBars(); } } */ #endregion } }
Structure et Fichiers du projet
Afficher/masquer...Icône | Nom | Taille | Modification |
Pas de sous-répertoires. | |||
Icône | Nom | Taille | Modification |
| _ | Répertoire parent | 0 octets | 1732242887 22/11/2024 03:34:47 |
Utilisation de l'explorateur de code
- Navigation :
- Un clic sur une icône de répertoire ouvre ce répertoire pour en afficher les fichiers.
- Lorsque le répertoire en cours ne contient pas de sous-répertoires il est possible de remonter vers le répertoire parent.
- La structure de répertoires en treetable (tableau en forme d'arborescence) n'est plus possibledans cette version.
- Un clic sur une icône de fichier ouvre ce fichier pour en afficher le code avec la coloration syntaxique adaptée en fonction du langage principal utilisé dans le fichier.
- Affichage :
- Il est possible de trier les répertoires ou les fichiers selon certains critères (nom, taille, date).
- Actions :
- Les actions possible sur les fichiers dépendent de vos droits d'utilisateur sur le site. Veuillez activer le mode utilisateur pour activer les actions.
Version en cache
22/11/2024 03:34:47 Cette version de la page est en cache (à la date du 22/11/2024 03:34:47) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 16/10/2009, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/cs-broldev-source-rf-view/dialogs/HSLDialog.cs.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.