aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* gamut: lch: Reduce chroma search precision to 0.001HEADs12.1s12.0Danny Lin2021-09-231-1/+1
| | | | | | | | | Tested with Android 12 Extensions sample color palettes [1] - images compared pixel-by-pixel using odiff: Preserve lightness: No difference Adaptive towards mid: 3 colors within imperceptible difference [1] https://github.com/kdrag0n/android12-extensions/blob/main/app/src/main/java/dev/kdrag0n/android12ext/ui/settings/appearance/AutoPaletteRenderer.kt
* cam: Zcam: Simplify pow(0.5) to sqrtDanny Lin2021-09-201-1/+1
|
* build: Bump version to 1.0.3Danny Lin2021-09-021-1/+1
|
* illuminants: Use ASTM D65 by defaultDanny Lin2021-09-024-20/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While agreement with the sRGB standard may be nice, most of our color spaces and color appearance models (ZCAM and Oklab) consider "white" to be ASTM D65 instead of the rounded sRGB chromaticities, and these color models are more sensitive than converting to 8-bpc sRGB. Tested by converting pure white to each color space and checking for minimum chroma: sRGB D65: Oklab(L=0.9999988020105659, a=-2.1755553165359043E-5, b=-1.2315505659377113E-4) Iz=0.9949976123811411 az=-2.362580742811815E-4 bz=-1.7212518608999972E-4 chroma=2.9230969424493827E-4 Zcam(brightness=865.6392743493063, lightness=100.0, colorfulness=0.3659209364945614, chroma=0.04227175768678253, hue=216.075109084568, saturation=4.495963941600806, vividness=42.000072326903116, blackness=19.99994281917249, whiteness=99.95772824231322, viewingConditions=ViewingConditions(surroundFactor=0.69, adaptingLuminance=10000.0, backgroundLuminance=1000.0, referenceWhite=CieXyzAbs(x=9504.559270516716, y=10000.0, z=10890.577507598784))) ASTM D65: Oklab(L=0.9999998095202896, a=-1.0091754968077904E-5, b=-8.610878004511324E-5) Iz=0.9949945266665536 az=-2.2566494047437935E-4 bz=-1.3882055770908508E-4 chroma=2.649449237142818E-4 Zcam(brightness=865.6358715247319, lightness=100.0, colorfulness=0.33927763142554684, chroma=0.039194035573865825, hue=211.59826124866282, saturation=4.329200076703247, vividness=42.00006217836164, blackness=19.999950842497512, whiteness=99.96080596442613, viewingConditions=ViewingConditions(surroundFactor=0.69, adaptingLuminance=10000.0, backgroundLuminance=1000.0, referenceWhite=CieXyzAbs(x=9504.7, y=10000.0, z=10888.3))) Raw CIE D65: Oklab(L=0.9999998468817637, a=-9.776905608882558E-6, b=-8.59019382591919E-5) Iz=0.9949945226634265 az=-2.2544728356810317E-4 bz=-1.386176506734671E-4 chroma=2.646532273494281E-4 Zcam(brightness=865.6358671102167, lightness=100.0, colorfulness=0.33899828752821487, chroma=0.03916176540372628, hue=211.58553550809668, saturation=4.327417499469805, vividness=42.00006207601551, blackness=19.99995092341122, whiteness=99.96083823459627, viewingConditions=ViewingConditions(surroundFactor=0.69, adaptingLuminance=10000.0, backgroundLuminance=1000.0, referenceWhite=CieXyzAbs(x=9504.705586542832, y=10000.0, z=10888.28736395884))) MATLAB D65: Oklab(L=0.9999951917581503, a=-4.595680552083037E-5, b=-8.142179944437E-5) Iz=0.9949921589631224 az=-2.4802709743521056E-4 bz=-1.3714120747843062E-4 chroma=2.834169223084207E-4 Zcam(brightness=865.6332605011636, lightness=100.0, colorfulness=0.3559767253054511, chroma=0.0411232725853621, hue=208.93944875904936, saturation=4.434467746562692, vividness=42.00006845018307, blackness=19.999945884064758, whiteness=99.95887672741463, viewingConditions=ViewingConditions(surroundFactor=0.69, adaptingLuminance=10000.0, backgroundLuminance=1000.0, referenceWhite=CieXyzAbs(x=9504.0, y=10000.0, z=10888.0))) Raw CIE D65 performs best in these tests, but ASTM D65 is very close and matches the white point used by many other color libraries (and most likely the color space/CAM authors as well).
* conversion: Remove redundant passthrough converter from pathsDanny Lin2021-09-021-2/+2
|
* tests: gamut: Simplify RGB, black, white testsDanny Lin2021-09-021-7/+11
|
* tests: gamut: Simplify ZCAM viewing condition constructionDanny Lin2021-09-021-2/+2
|
* tests: oklab: Streamline example XYZ testsDanny Lin2021-09-021-41/+24
|
* tests: conversion: Check for specific exception typeDanny Lin2021-09-021-2/+3
|
* tests: zcam: Fix blackness testsDanny Lin2021-09-011-1/+2
| | | | | I accidentally removed the blackness assertion entirely instead of making it more permissive.
* gamut: lch: Remove unnecessary usage of thisDanny Lin2021-09-011-6/+6
|
* cam: Zcam: Fix PQ/inverse transfer function namesDanny Lin2021-09-011-12/+12
|
* tests: zcam: Check most attributes more strictlyDanny Lin2021-08-311-3/+3
| | | | | It's just blackness (Vz) that deviates up to 0.7. We should probably contact the authors to clarify that.
* tests: zcam: Add all examples from supplementary documentDanny Lin2021-08-311-60/+146
| | | | | | | | | | | | | | | All sample XYZ values have been adapted using colorio's implementation of CAT02, with F values chosen to match the given surround and L_a matching the one used for ZCAM. The paper appears to have the wrong L_a and Y_b values for example #3. Changing them to match #1 and #2 fixes the tests. The paper also gives an odd value for hue angle in #5: 389.7720 degrees, likely caused by unconditionally adding 360 to make the angle positive. Subtracting 360 makes the test pass. Closes #3.
* cam: Zcam: Clarify step 2 in forward modelDanny Lin2021-08-311-1/+1
|
* tests: zcam: Fix reference white and D65 used in Example 1 testDanny Lin2021-08-311-6/+17
| | | | This is closer to the paper now, but still not identical.
* cam: Zcam: Fix equation number in commentDanny Lin2021-08-311-1/+1
|
* cam: Zcam: Align R' G' B' matrixDanny Lin2021-08-311-3/+3
|
* build: Bump version to 1.0.2Danny Lin2021-08-311-1/+1
|
* tristimulus: CieXyzAbs: Remove redundant luminance argumentsDanny Lin2021-08-311-2/+2
|
* gamut: oklab: Make private oklab argument mandatoryDanny Lin2021-08-311-4/+2
|
* gamut: oklab: Use LinearSrgb#isInGamut() helperDanny Lin2021-08-311-1/+1
|
* tests: gamut: Test ZCAM clipping with negative lightnessDanny Lin2021-08-311-3/+14
|
* gamut: oklab: Remove unused default argumentsDanny Lin2021-08-311-2/+2
|
* build: Exclude test code from coverage reportsDanny Lin2021-08-311-4/+3
|
* tests: Test CIELAB inversionDanny Lin2021-08-311-0/+22
|
* tests: zcam: Test aliases and viewing condition parametersDanny Lin2021-08-311-0/+41
|
* tests: conversion: Test an unsupported conversionDanny Lin2021-08-311-0/+12
|
* tests: Add SRLAB2 tests using colorio samplesDanny Lin2021-08-312-3/+56
|
* tests: srgb: Test XYZ->sRGB conversionDanny Lin2021-08-311-1/+7
|
* tests: gamut: Add pure white to clipping testsDanny Lin2021-08-311-8/+8
|
* tests: xyz: Make sure reference white is D65Danny Lin2021-08-311-0/+5
|
* tests: oklab: Test XYZ inversionDanny Lin2021-08-311-0/+20
|
* ucs: lab: Oklab: Add XYZ conversions to graphDanny Lin2021-08-312-1/+4
|
* tests: gamut: Add sanity checks for all clip methodsDanny Lin2021-08-311-1/+29
|
* tests: zcam: Test all combinations of inversion methodsDanny Lin2021-08-312-7/+15
|
* cam: Zcam: Fix inversion with saturation as chroma sourceDanny Lin2021-08-311-1/+3
|
* build: Add JVM test coverage reports using JaCoCoDanny Lin2021-08-301-0/+31
|
* build: Use JUnit 5 for JVM testsDanny Lin2021-08-301-1/+1
|
* illuminants: Distinguish between different variants of D65Danny Lin2021-08-301-4/+4
|
* build: Bump version to 1.0.1Danny Lin2021-08-301-1/+1
|
* readme: Add link to Maven Central searchDanny Lin2021-08-301-1/+1
|
* Color: Reference ConversionGraph class in docsDanny Lin2021-08-301-1/+1
|
* conversion: Prevent adding duplicate conversionsDanny Lin2021-08-301-11/+5
|
* conversion: Move color conversions out of Color companion objectDanny Lin2021-08-3016-61/+49
| | | | | This should allow R8 to remove unused color spaces and graph code if users avoid automatic conversion.
* readme: Add javadoc.io linkDanny Lin2021-08-301-0/+2
|
* readme: Add Maven Central version badgeDanny Lin2021-08-301-3/+5
|
* gradle: Add workaround for Dokka metaspace usageDanny Lin2021-08-301-0/+3
| | | | | Work around https://github.com/Kotlin/dokka/issues/1405 to fix builds on GitHub Actions.
* readme: Update for Maven Central releaseDanny Lin2021-08-301-2/+0
|
* github: Add release publishing workflowDanny Lin2021-08-302-13/+38
|