Images

Fast, no-nonsense image editing by tool or API. Resize, crop and compress, convert formats, adjust colour, remove backgrounds, add text or watermarks and read EXIF — one image or a whole batch. Free browser tools for the quick jobs, an API for scale.

Detect duplicate images by hash
Five images with 64-bit hashes and a 5-bit threshold fall into 2 groups, three versions of a banner and two of a logo, so all 5 are duplicates and none is…
Free · Runs in your browser
Extract photo date taken from EXIF
Turn the date your camera wrote, 2023:06:15 14:30:45, into a normal date and time: 2023-06-15 and 14:30:45, plus the combined 2023-06-15T14:30:45.
Free · Runs in your browser
Confirm GPS metadata was removed from an image
Compare a photo's metadata before and after stripping and confirm that no location survives: in the example, the latitude, longitude and altitude tags are…
Free · Runs in your browser
Resize image by percentage
At 50 percent, a 1920 × 1080 image becomes 960 × 540 pixels, which keeps a quarter of the pixels, not half.
Free · Runs in your browser
Resize image canvas with padding
Put a 1200 × 800 image on a 1601 × 1001 canvas and get the exact margins: 200 px left, 201 right, 100 top and 101 bottom.
Free · Runs in your browser
Replace a specific color in an image
Turn red into green across a list of image pixels. With a tolerance of 32, the pure red and the two near-reds change, so 3 of 5 pixels are replaced.
Free · Runs in your browser
Build a before-and-after image comparison layout
Two 1200 × 800 photos with the slider at 37.5 % put the divider at pixel 450: the before image fills the first 450 pixels and the after image the other 750.
Free · Runs in your browser
Rule of thirds grid calculator
Get the exact rule-of-thirds guides for any image size: on a 1200 by 800 picture the vertical lines fall at 400 and 800 pixels, alongside two horizontal lines…
Free · Runs in your browser
Estimate panorama canvas width from overlapping photos, free
Three 4000-pixel photos overlapping by 30% and 25% stitch into a panorama 9,800 pixels wide, not 12,000.
Free · Runs in your browser
SVG rasterization size calculator
A 24×24 viewBox exported at 2× becomes a 48×48 PNG. Enter the viewBox and either a scale or a target width to get whole-pixel dimensions, the aspect ratio and…
Free · Runs in your browser
Compare color space gamut coverage and uses
DCI-P3 spans about 126 % of the sRGB area and contains its whole triangle, while Adobe RGB and DCI-P3 each reach colors the other misses.
Free · Runs in your browser
Generate a complementary color from any hex or RGB value
Get the color straight across the hue wheel from yours, with saturation and lightness kept: #336699 returns #996633, both as hex and RGB, ready for a strong…
Free · Runs in your browser
RGB to XYZ converter
Get CIE 1931 XYZ values from an sRGB color: orange 255, 128, 0 gives X 48.96429558, Y 36.70460115 and Z 4.50627447 on the 0 to 100 scale.
Free · Runs in your browser
LAB to RGB converter
The LAB color lightness 53.2407941413, a 80.0924595964, b 67.2031965159 comes back as rgb(255, 0, 0), pure red #FF0000.
Free · Runs in your browser
RGB to LCH converter
Describe an RGB color the way people adjust it: lightness from 0 for black to about 100 for white, chroma as colorfulness and hue as an angle from 0 up to 360°.
Free · Runs in your browser
RGB to OKLCH converter
Get the OKLCH coordinates of an RGB color: 255, 87, 51 becomes lightness 0.680358, chroma 0.210012 and hue 33.691637°.
Free · Runs in your browser
RGB to YUV converter
Split an RGB color into brightness and two color differences: orange 255, 128, 0 gives Y 0.5936509804, U −0.2921263922 and V 0.3564952157 with BT.601 weights.
Free · Runs in your browser
YIQ to RGB converter
Turn Y, I and Q into a screen color: 0.5, 0.5 and 0.5 give red 255, green 10 and blue 204, or #ff0acc, and you are told that red was clipped from 1.2885.
Free · Runs in your browser
CMYK to HSV converter
Turn a print ink recipe into hue, saturation and value: C0 M50 Y100 K0 becomes RGB 255, 128, 0, an orange with 100 % saturation and 100 % value.
Free · Runs in your browser
HSV to HSL converter
Move a color from HSV to HSL without guessing: hue 210, saturation 70% and value 80% become lightness 52% on the same hue, with saturation recalculated for HSL.
Free · Runs in your browser
HWB to HSL converter
Hue 210 with 20 % whiteness and 10 % blackness becomes hsl(210 77.78% 55%), with the hue kept exactly as you entered it.
Free · Runs in your browser
RGB to LUV converter
Get the CIE 1976 Luv coordinates of an RGB color: lightness L* from 0 for black to about 100 for white, plus u* and v* measured from the D65 white.
Free · Runs in your browser
XYZ to xyY converter
Split a color into chromaticity and brightness: X 41.24, Y 21.26 and Z 1.93 become a pair of x and y coordinates for the CIE 1931 diagram, with luminance Y kept…
Free · Runs in your browser
Expand shorthand hex color
Turn shorthand into the long form browsers use: #f0a becomes #ff00aa because each digit is doubled, and you also get #FF00AA in capitals and the channels 255, 0…
Free · Runs in your browser
Hex8 to RGBA converter
Read a transparent hex color channel by channel: #33669980 splits into red 51, green 102, blue 153 and alpha 128, which is 0.501961 on a 0 to 1 opacity scale.
Free · Runs in your browser
Hex to CMYK converter
Get the process-ink mix behind a screen color: #3498db becomes cyan 76%, magenta 31%, yellow 0% and key 14%, worked out with the standard subtractive formula.
Free · Runs in your browser
LAB to hex converter
Lightness 53.2408 with a at 80.0925 and b at 67.2032 gives #FF0000, pure red, and the result tells you it was clipped to fit the screen range.
Free · Runs in your browser
OKLCH to hex converter
oklch(62.8% 0.258 29.23) becomes #FF0000, pure red, and the result tells you it was clipped to fit what a normal screen can show.
Free · Runs in your browser
RGB555 to RGB Unpacker
Turn a packed RGB555 number into ordinary RGB: 0x7C1F gives red 255, green 0 and blue 255. Each five-bit level is scaled to the full 0 to 255 range, so retro…
Free · Runs in your browser
XYZ to hex converter
Enter X, Y and Z and get the screen color as a hex code: 0, 0 and 0 give pure black, #000000. Values a screen cannot show are brought to the nearest displayable…
Free · Runs in your browser
Darken hex color by percent
Build hover and pressed shades from one brand hex with a fixed percentage, so #4A90D9 at 20 % turns into #2873C0, still the same blue.
Free · Runs in your browser
Dim a color by reducing HSV value
Dim a color without shifting its hue: removing 25% of the HSV value turns #40A0FF into #3078BF, with the same hue and saturation and the RGB and HSV numbers…
Free · Runs in your browser
Apply gamma correction to a color
Reshape a color's midtones with a power curve: gamma 2.2 turns #3366cc into #07229c, values below 1 brighten midtones instead, and pure black and white never…
Free · Runs in your browser
Hex to grayscale by Rec. 709 luminance
Convert #3498DB to gray with Rec. 709 luminance: 0.2126 × red + 0.7152 × green + 0.0722 × blue gives 135.5774, which rounds to 136 and the neutral gray #888888.
Free · Runs in your browser
Blend two colors by ratio
At a ratio of 50, #FF0000 and #0000FF each carry a weight of 0.5 and give #800080. You state exactly how much of the second color goes in, so every step of a…
Free · Runs in your browser
RGB565 to RGB unpacker
Read a 16-bit RGB565 value as a normal color: 0xF800, or 63488, is pure red, rgb 255, 0, 0 and #FF0000.
Free · Runs in your browser
RGB to color temperature
Put a kelvin figure on a screen color: RGB 255, 200, 150 comes out at about 3634.1681 K. The estimate uses CIE chromaticity and McCamy’s classic formula, handy…
Free · Runs in your browser
Clamp color to gamut
Bring out-of-range RGB values back inside the 0 to 255 scale: red 300, green −20 and blue 127.5 become 255, 0 and 127.5, and you see which channels changed.
Free · Runs in your browser
Color Burn Blend Two Colors
Darken one color by another the way the color burn blend mode does: mid grey #808080 burned with itself drops to #020202, almost black.
Free · Runs in your browser
Hex to grayscale by lightness
Turn a hex color into gray the HSL way: #e74c3c has 231 as its highest channel and 60 as its lowest, so the lightness is (231 + 60) / 2 = 145.5 and the gray is…
Free · Runs in your browser
Subtractive color mixer
Yellow #FFFF00 and blue #0000FF mixed half and half like paint give green #008000, not the gray a screen-light blend would produce.
Free · Runs in your browser
Overlay blend two colors
Overlaying #FFCC00 on the base #336699 gives #66A333, or rgb(102, 163, 51): dark channels of the base are multiplied and light ones are screened, which adds…
Free · Runs in your browser
Shift color temperature warmer or cooler
Shift #6699CC by 32 and it becomes the warmer #8699AC: red rises to 134, blue drops to 172 and green stays at 153.
Free · Runs in your browser
Unpremultiply RGBA Alpha
Undo premultiplied alpha for one pixel: red 0.125, green 0.25 and blue 0.375 at alpha 0.5 come back as 0.25, 0.5 and 0.75, with alpha unchanged.
Free · Runs in your browser
Darken blend two colors
Combine two colors the way the darken blend mode does, keeping the darker value channel by channel: #FF8800 with #00AAFF gives a deep green, #008800.
Free · Runs in your browser
Exclusion blend two colors
Combine two colors with the exclusion blend mode: #336699 and #CC8844 give #AD818B, a softer, lower-contrast cousin of the difference blend, ready to copy as…
Free · Runs in your browser
Pin light blend
#C0C0C0 on top of #808080 gives #818181: the light top channels only lift the base slightly, from 128 to 129.
Free · Runs in your browser
Square color scheme generator
Turn one hex color into a four-color square scheme: #e74c3c gives #82e73c, #3cd7e7 and #a13ce7, each a further 90° around the hue wheel.
Free · Runs in your browser
Generate color tints
Give #3366cc and 4 steps and you get tints mixed with 25, 50, 75 and 100 percent white: #668cd9, #99b3e6, #ccd9f2 and #ffffff.
Free · Runs in your browser
APCA contrast calculator
Find out how readable a type color is on the surface behind it: near-black #111827 on white scores Lc 104.5, and swapping the two flips the sign.
Free · Runs in your browser
W3C brightness difference calculator
Compare two colors with the legacy W3C brightness test: black against white differs by 255, well above the 125 needed to pass.
Free · Runs in your browser
CIE94 color difference calculator
Measure how different two Lab colors look with the CIE94 formula, using the graphic-arts defaults of 0.045 for K1 and 0.015 for K2 or textile weights.
Free · Runs in your browser
Evenly spaced hue palette
Five colors from a base hue of 200° land 72° apart, starting with #269dd9 and ending with #26d93e.
Free · Runs in your browser
Relative luminance calculator
Measure how much light a color gives under the WCAG formula: mid-gray #808080 scores 0.215860500114, on a scale from 0 for black to 1 for white.
Free · Runs in your browser
Simulate protanomaly color
Preview a color as seen with weakened red sensitivity: vivid red #e74c3c becomes #416f3e at the default severity of 0.6.
Free · Runs in your browser
Protanopia color simulator
See a color the way a person without working red cones might: bright red #e63946 turns into #6c6545.
Free · Runs in your browser
Warm and cool color variant palette generator
Start from #6f4bb8 and get five colors: two warmer, the original and two cooler, each pushed 35 or 70 percent of the way toward orange at 30 degrees or blue at…
Free · Runs in your browser
Contrast ratio letter grade
Turn a color pair's contrast into a letter you can drop into a review: #111827 on white reaches 17.74 to 1 and earns an A, because grade A starts at 12 to 1.
Free · Runs in your browser
Gradient color stops generator
Get every color stop between a start and an end: from #FF0000 to #0000FF in 5 stops gives #BF0040 at 25%, #800080 at 50% and #4000BF at 75%, with both ends…
Free · Runs in your browser
Hex alpha to opacity percent
Find the opacity hidden in a hex color: the last pair of #33669980 is 80, which is byte 128 and an opacity of 50.2%, not the 50% many people assume.
Free · Runs in your browser