ForHosting KIT · Developer Utilities

CIE94 color difference calculator

The CIE94 color difference calculator compares two CIELAB colors using separate corrections for lightness, chroma, and hue.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

It improves on the uniform Euclidean distance used by CIE76 by reducing the influence of chroma and hue differences as the reference color becomes more saturated. Enter both Lab triplets, keep the graphic-arts defaults or supply application-specific weighting factors, and receive the final Delta E 1994 value together with every intermediate component needed to audit the calculation.

What CIE94 measures and why the first color matters

CIE94 estimates how different two measured colors appear by working in the CIELAB coordinate system and treating lightness, chroma, and hue as separate perceptual contributions. CIE76 simply measures a straight-line distance between the two Lab points. That is useful, but equal geometric distances do not always look equally different to a human observer. CIE94 adds scale terms that make chroma and hue tolerances grow with the chroma of the reference color. As a result, it generally models practical acceptance decisions better than CIE76 while remaining transparent and inexpensive to compute. The ordering of the colors is significant: the scale terms use the chroma of the first, reference color, so reversing the two inputs can produce a different result. Put the standard, target, master sample, or approved swatch in l1, a1, and b1, then put the trial or measured sample in l2, a2, and b2. The returned reference and comparison chroma values make that direction explicit and help prevent an accidental reversal in automated quality-control workflows.

Choose weighting factors for the application

The default settings implement the common graphic-arts form of CIE94: k_l, k_c, and k_h are 1, while K1 is 0.045 and K2 is 0.015. Textile evaluation commonly changes k_l to 2, K1 to 0.048, and K2 to 0.014, leaving k_c and k_h at 1. Those choices reflect different tolerance priorities rather than a conversion between color spaces. The calculator exposes every factor so a laboratory, contract, or internal specification can be reproduced exactly. All three application weights must be greater than zero because they divide their corresponding difference terms; K1 and K2 must be zero or positive because they control how the chroma-dependent scale terms expand. Do not tune the factors merely to make a sample pass. Record the convention alongside the result and use the same convention across a comparison series. The output repeats the weighting object and reports each scale and normalized term, allowing another system to verify which settings were used without reconstructing defaults or relying on hidden state.

Interpret and verify the returned difference

The primary result, delta_e_94, is a nonnegative difference value: zero means the two Lab inputs are identical under the calculation, and larger values indicate greater modeled separation. A universal pass-or-fail boundary is not built into CIE94. Acceptability depends on the viewing conditions, materials, instruments, process capability, customer specification, and selected weighting convention. Treat any threshold as part of your own quality standard rather than as a property of the formula. The response also includes signed delta_l and delta_c, the nonnegative hue component, both chromas, all scale factors, and the three normalized terms. These fields are useful when two pairs have similar total differences for different reasons: one may be primarily lighter, while another may differ mostly in hue. Inputs must be finite numbers, and L* values must remain between 0 and 100. The computation uses no network, randomness, clock, profile lookup, or implicit color conversion, so identical JSON inputs produce identical rounded outputs. Convert device RGB or spectral readings to a shared CIELAB reference condition before calling this capability.

Check a print sample against a proof

Use the approved proof as the reference color and quantify whether a measured press sample remains within the print shop's documented CIE94 tolerance.

Evaluate textile shade consistency

Apply the textile weighting convention to compare a dyed fabric sample with its master swatch while retaining the separate lightness, chroma, and hue contributions.

Audit color quality calculations

Store the returned scale factors, normalized terms, and weighting object with a batch record so the reported difference can be reproduced independently.

How is CIE94 different from CIE76?

CIE76 is the direct Euclidean distance between Lab coordinates. CIE94 separates lightness, chroma, and hue and scales chroma and hue according to the reference color, which better matches many practical visual comparisons.

Does the order of the two colors matter?

Yes. CIE94 uses the first color's chroma to calculate its chroma and hue scale factors, so the first color should be the reference or standard. Reversing the pair can change the result.

Which settings should I use for textiles?

A common textile convention uses k_l = 2, k_c = 1, k_h = 1, K1 = 0.048, and K2 = 0.014. Use the factors required by your governing specification when it defines different values.

What Delta E 94 value is acceptable?

CIE94 does not define one universal acceptance limit. Choose a threshold based on your material, viewing conditions, process, instruments, customer agreement, and weighting convention.

Can I enter RGB or hexadecimal colors?

No. The calculation requires two CIELAB triplets measured or converted under compatible reference conditions. RGB and hexadecimal values need an explicit color profile and conversion before comparison.

What does an API calculation cost?

Each API request costs $0.002. The calculation is also suitable for the free browser runner because it is deterministic and uses no network service.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/color/delta-e-94

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/color/delta-e-94 \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"l1":50,"a1":2.6772,"b1":-79.7751,"l2":50,"a2":0,"b2":-82.7485}'
{
  "l1": 50,
  "a1": 2.6772,
  "b1": -79.7751,
  "l2": 50,
  "a2": 0,
  "b2": -82.7485
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.delta_e_94",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →