summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Biedert <github@ericbiedert.de>2024-06-22 11:09:28 +0200
committerGitHub <noreply@github.com>2024-06-22 09:09:28 +0000
commit381a82e764829281b22d4959333c7c0f477a53e3 (patch)
tree622ad14723655fdd2728ffa8cd5f714188c28407
parent0fbec820355f9f61161b56dc7b757e8a2f5aef4f (diff)
Fix color mixing and gradients in luma space (#4424)
Co-authored-by: Laurenz <laurmaedje@gmail.com>
-rw-r--r--crates/typst/src/visualize/color.rs2
-rw-r--r--tests/ref/issue-color-mix-luma.pngbin0 -> 126 bytes
-rw-r--r--tests/suite/visualize/color.typ4
3 files changed, 5 insertions, 1 deletions
diff --git a/crates/typst/src/visualize/color.rs b/crates/typst/src/visualize/color.rs
index 185e990b..17f4b5a4 100644
--- a/crates/typst/src/visualize/color.rs
+++ b/crates/typst/src/visualize/color.rs
@@ -1191,7 +1191,7 @@ impl Color {
Color::Hsv(Hsv::new(RgbHue::from_degrees(m[0]), m[1], m[2], m[3]))
}
ColorSpace::Cmyk => Color::Cmyk(Cmyk::new(m[0], m[1], m[2], m[3])),
- ColorSpace::D65Gray => Color::Luma(Luma::new(m[0], m[1])),
+ ColorSpace::D65Gray => Color::Luma(Luma::new(m[0], m[3])),
})
}
diff --git a/tests/ref/issue-color-mix-luma.png b/tests/ref/issue-color-mix-luma.png
new file mode 100644
index 00000000..95716892
--- /dev/null
+++ b/tests/ref/issue-color-mix-luma.png
Binary files differ
diff --git a/tests/suite/visualize/color.typ b/tests/suite/visualize/color.typ
index 33259461..da93cb4e 100644
--- a/tests/suite/visualize/color.typ
+++ b/tests/suite/visualize/color.typ
@@ -329,3 +329,7 @@
#color.hsl(blue) \
#color.hsv(blue) \
#luma(blue)
+
+--- issue-color-mix-luma ---
+// When mixing luma colors, we accidentally used the wrong component.
+#rect(fill: gradient.linear(black, silver, space: luma))