在 dotnet core (C#)下的颜色渐变
直接使用等比例抽样算法,连同透明度一起计算。
1 public IList<Color> ShadeColors(Color c1, Color c2, int resultCount) 2 { 3 var result = new List<Color>(); 4 for (int i = 0; i < resultCount; i++) 5 { 6 var a = c1.A + (int)((c2.A - c1.A) * i / resultCount); 7 var r = c1.R + (int)((c2.R - c1.R) * i / resultCount); 8 var g = c1.G + (int)((c2.G - c1.G) * i / resultCount); 9 var b = c1.B + (int)((c2.B - c1.B) * i / resultCount); 10 var c = Color.FromArgb(a, r, g, b); 11 result.Add(c); 12 } 13 return result; 14 }
输出图片
如果要输出图片可能需要安装libgdiplus
,如果缺少依赖的话, 详见CoreCompat/CoreCompat。在Ubuntu
执行命令:
RUN apt-get update \ && apt-get install -y --allow-unauthenticated \ libc6-dev \ libgdiplus \ libx11-dev \ && rm -rf /var/lib/apt/lists/*
输出图片的代码:
1 static void Main(string[] args) 2 { 3 int size = 300; 4 int h = 30; 5 var bmp = new Bitmap(size, h, PixelFormat.Format32bppArgb); 6 Color c1 = Color.FromArgb(0xff, Color.Green); 7 Color c2 = Color.FromArgb(0x4e, Color.Yellow); 8 var cs = ShadeColors(c1, c2, size); 9 for (int i = 0; i < size; i++) 10 { 11 for (int j = 0; j < h; j++) 12 { 13 bmp.SetPixel(i, j, cs[i]); 14 } 15 } 16 bmp.Save("shade.png", ImageFormat.Png); 17 Console.WriteLine("Hello World!"); 18 // Console.ReadLine(); 19 }
最终输出的图片
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构