for Push.

This commit is contained in:
nobobo
2026-06-01 13:23:34 +09:00
parent 9e093ea99f
commit a6550e9928
93 changed files with 10393 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
using DocumentFormat.OpenXml.Wordprocessing;
using KssSmaPlaLib.Ini;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Color = System.Drawing.Color;
namespace KssSmaPlaLib.Forms
{
public static class ColorHelper
{
/// <summary>
/// 色選択
/// </summary>
/// <param name="form"></param>
/// <param name="defaultColor"></param>
/// <param name="iniKey"></param>
/// <returns></returns>
public static Color? SelectColor(Form form, Color defaultColor, string iniKey = "")
{
using (ColorDialog cd = new ColorDialog())
{
// 今の色を初期選択にしておく
cd.Color = defaultColor;
if (cd.ShowDialog(form) != DialogResult.OK) return null;
if (!string.IsNullOrEmpty(iniKey))
{
// 2. 🔥 Colorを16進数(#RRGGBB)に変換してINIに書き込み
string colorHex = ColorTranslator.ToHtml(cd.Color);
IniHelper.WriteValue(null, form.Name, iniKey, colorHex);
}
return cd.Color;
}
}
/// <summary>
/// Colorを汎用的なHTML色コード文字列に変換する
/// </summary>
/// <param name="color"></param>
/// <returns></returns>
public static string ColorToHtmlColorString(Color color)
{
return ColorTranslator.ToHtml(color);
}
/// <summary>
/// 汎用的なHTML色コード文字列からColorに変換する
/// </summary>
/// <param name="htmlColorString"></param>
/// <returns></returns>
public static Color HtmlColorStringToColor(string htmlColorString)
{
return ColorTranslator.FromHtml(htmlColorString);
}
/// <summary>
/// 背景色から最適な文字色(黒/白)を返すメソッド
/// </summary>
/// <param name="backColor"></param>
/// <returns></returns>
public static Color GetContrastColor(Color backColor)
{
// 輝度計算 (ITU-R BT.601)
double luminance = (0.299 * backColor.R) + (0.587 * backColor.G) + (0.114 * backColor.B);
return (luminance > 128) ? Color.Black : Color.White;
}
}
}