Flutter颜色转换插件color_convert_null_safety的使用

Flutter颜色转换插件color_convert_null_safety的使用

简介

color_convert_null_safety 是一个用于颜色转换的 Dart 库。它支持多种颜色空间之间的相互转换,包括但不限于 rgbhslhsvhwbcmykansiansi16hex 字符串以及 CSS 的 keyword(会四舍五入到最接近的颜色)。该库基于 color-convert 项目,由 Heather Arthur 开发。

使用方法

导入库

首先,在你的 Flutter 项目中添加依赖:

dependencies:
  color_convert_null_safety: ^1.0.0

然后运行 flutter pub get 安装依赖。

基本用法

以下是一些基本的用法示例:

RGB 转 HSL

import 'package:color_convert_null_safety/color_convert.dart';

void main() {
  List<int> hsl = convert.rgb.hsl(140, 200, 100);
  print(hsl); // 输出: [96, 48, 59]
}

关键字转 RGB

import 'package:color_convert_null_safety/color_convert.dart';

void main() {
  List<int> rgb = convert.keyword.rgb('blue');
  print(rgb); // 输出: [0, 0, 255]
}

获取通道数

import 'package:color_convert_null_safety/color_convert.dart';

void main() {
  int rgbChannels = convert.rgb.channels; // 3
  int cmykChannels = convert.cmyk.channels; // 4
  int ansiChannels = convert.ansi16.channels; // 1
}

API 文档

颜色空间转换

所有函数都有两种变体:四舍五入版未四舍五入版。默认情况下,返回值是四舍五入后的结果。若要获取未四舍五入的原始结果,只需在函数后加上 .raw

HEX 转 LAB

import 'package:color_convert_null_safety/color_convert.dart';

void main() {
  List<double> labRounded = convert.hex.lab('DEADBF');
  print(labRounded); // 输出: [76, 21, -2]

  List<double> labRaw = convert.hex.lab.raw('DEADBF');
  print(labRaw); // 输出: [75.56213190997677, 20.653827952644754, -2.290532499330533]
}

RGB 转 CMYK

import 'package:color_convert_null_safety/color_convert.dart';

void main() {
  List<int> cmykRounded = convert.rgb.cmyk(167, 255, 4);
  print(cmykRounded); // 输出: [35, 0, 98, 0]

  List<double> cmykRaw = convert.rgb.cmyk.raw(167, 255, 4);
  print(cmykRaw); // 输出: [34.509803921568626, 0, 98.43137254901961, 0]
}

数组支持

所有接受多个参数的函数也支持传递数组作为参数。

RGB 转 HEX

import 'package:color_convert_null_safety/color_convert.dart';

void main() {
  String hex1 = convert.rgb.hex(123, 45, 67);
  print(hex1); // 输出: '7B2D43'

  String hex2 = convert.rgb.hex([123, 45, 67]);
  print(hex2); // 输出: '7B2D43'
}

更多关于Flutter颜色转换插件color_convert_null_safety的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter颜色转换插件color_convert_null_safety的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


color_convert_null_safety 是一个用于在 Flutter 中进行颜色转换的插件,支持空安全(null safety)。它提供了多种颜色格式之间的转换功能,例如 RGB、HSL、HSV、HEX 等。

安装插件

首先,你需要在 pubspec.yaml 文件中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  color_convert_null_safety: ^1.0.0

然后运行 flutter pub get 来安装依赖。

使用插件

以下是一些常见的使用示例:

1. RGB 转 HEX

import 'package:color_convert_null_safety/color_convert_null_safety.dart';

void main() {
  var rgb = [255, 0, 0]; // 红色
  var hex = ColorConvert.rgb2hex(rgb);
  print(hex); // 输出: #ff0000
}

2. HEX 转 RGB

import 'package:color_convert_null_safety/color_convert_null_safety.dart';

void main() {
  var hex = '#ff0000'; // 红色
  var rgb = ColorConvert.hex2rgb(hex);
  print(rgb); // 输出: [255, 0, 0]
}

3. RGB 转 HSL

import 'package:color_convert_null_safety/color_convert_null_safety.dart';

void main() {
  var rgb = [255, 0, 0]; // 红色
  var hsl = ColorConvert.rgb2hsl(rgb);
  print(hsl); // 输出: [0, 100, 50]
}

4. HSL 转 RGB

import 'package:color_convert_null_safety/color_convert_null_safety.dart';

void main() {
  var hsl = [0, 100, 50]; // 红色
  var rgb = ColorConvert.hsl2rgb(hsl);
  print(rgb); // 输出: [255, 0, 0]
}

5. RGB 转 HSV

import 'package:color_convert_null_safety/color_convert_null_safety.dart';

void main() {
  var rgb = [255, 0, 0]; // 红色
  var hsv = ColorConvert.rgb2hsv(rgb);
  print(hsv); // 输出: [0, 100, 100]
}

6. HSV 转 RGB

import 'package:color_convert_null_safety/color_convert_null_safety.dart';

void main() {
  var hsv = [0, 100, 100]; // 红色
  var rgb = ColorConvert.hsv2rgb(hsv);
  print(rgb); // 输出: [255, 0, 0]
}
回到顶部