Automattic/node-canvas

RGB functions do not support real numbers

Open

#2,339 opened on Jan 18, 2024

View on GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (1,140 forks)batch import
Good first issueHelp wanted

Repository metrics

Stars
 (9,524 stars)
PR merge metrics
 (Avg merge 34d 18h) (2 merged PRs in 30d)

Description

Issue

RGB colors that contain a real number are not supported, while in browsers this works. The official spec defines real numbers as a valid argument for the modern spec and browsers have supported this for several years so it would be nice to have consistency.

Steps to Reproduce

const { Canvas } = require('canvas');
const canvas = new Canvas();
const ctx = canvas.getContext('2d');

ctx.fillStyle = 'rgb(127,127.0,255)';
console.log(ctx.fillStyle); // output: #000000

ctx.fillStyle = 'rgb(127,127,255)';
console.log(ctx.fillStyle); // output: #7f7fff

I think this parsing may just have to be changed to floats?

Your Environment

  • Version of node-canvas: canvas@2.11.2
  • Environment: node v20.2.0 on macOS 14.2.1 (e.g. node 20.9.0 on macOS 14.1.1):

Contributor guide