在 dotnet core (C#)下的颜色渐变
2024-08-26 16:49:20
直接使用等比例抽样算法,连同透明度一起计算。
public IList<Color> ShadeColors(Color c1, Color c2, int resultCount)
{
var result = new List<Color>();
for (int i = ; i < resultCount; i++)
{
var a = c1.A + (int)((c2.A - c1.A) * i / resultCount);
var r = c1.R + (int)((c2.R - c1.R) * i / resultCount);
var g = c1.G + (int)((c2.G - c1.G) * i / resultCount);
var b = c1.B + (int)((c2.B - c1.B) * i / resultCount);
var c = Color.FromArgb(a, r, g, b);
result.Add(c);
}
return result;
}
输出图片
如果要输出图片可能需要安装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/*
输出图片的代码:
static void Main(string[] args)
{
int size = ;
int h = ;
var bmp = new Bitmap(size, h, PixelFormat.Format32bppArgb);
Color c1 = Color.FromArgb(0xff, Color.Green);
Color c2 = Color.FromArgb(0x4e, Color.Yellow);
var cs = ShadeColors(c1, c2, size);
for (int i = ; i < size; i++)
{
for (int j = ; j < h; j++)
{
bmp.SetPixel(i, j, cs[i]);
}
}
bmp.Save("shade.png", ImageFormat.Png);
Console.WriteLine("Hello World!");
// Console.ReadLine();
}
最终输出的图片
最新文章
- Python 3.5 连接Mysql数据库(pymysql 方式)
- Android中Services简析
- powershell脚本闪电输入神器
- js中获取样式的俩种方法 style.color和style[&#39;color&#39;] 区别
- PowerDesigner将PDM导出生成WORD文档
- mysql 线程级别的缓冲区
- 高并发的常见策略--大型web项目
- 01:Hello, World!
- leetcode Binary Search Tree Iterator python
- hdu 4342 History repeat itself(数学题)
- python爬虫爬取代理IP
- Eclipse+Resin开发环境迁移中发生的一些问题
- 转 -Filebeat + Redis 管理 LOG日志实践
- Oracle入门之对表内容的dml操作
- 数组去重的4种方法(Which one is the fastest???嘻嘻嘻....)
- ubuntu 远程登录错误
- vue项目中, 字段信息为空时不渲染,是真的不渲染吗
- HttpClient的帮助类
- Construct Binary Tree from Inorder and Postorder Traversal Traversal leetcode java
- 三.jquery.datatables.js表格编辑与删除