Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Ekstraktor kolorów z obrazów

Wyodrębnij dominujące kolory z dowolnego zdjęcia lub grafiki. Algorytm k-means lub median cut. Pobierz paletę HEX, CSS i JSON. Bezpłatnie.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
Plik zostanie użyty tylko podczas przetwarzania.
Wybierz obraz (JPG, PNG, GIF lub WebP) i kliknij „Przetwórz”, aby zobaczyć paletę.
Kwantyzacja RGB co 32 + wybór dominujących obszarów kolorystycznych
EtapCo dokładnie się dzieje
Dekodowanie biblioteka GD na serwerze otwiera JPG, PNG, GIF lub WebP (typ MIME weryfikowany z nagłówka pliku, nie z rozszerzenia)
Ochrona pamięci przed dekodowaniem ImageGuard sprawdza, czy bitmapa (szer. × wys. × 4 B) mieści się w budżecie pamięci — sam rozmiar pliku nic nie mówi o rozmiarze bitmapy
Próbkowanie obraz jest przeskalowany do maks. 160 px dłuższej krawędzi (imagecopyresampled) — analiza działa szybko nawet na dużych zdjęciach
Kwantyzacja każda składowa RGB zaokrąglana w dół do wielokrotności 32 — 8 poziomów na kanał, czyli do 512 „kubełków” kolorów zliczanych po całym obrazie
Pomijanie skrajnych opcja „Pomiń skrajne”: piksele z najjaśniejszym kanałem ≥ 248 (biel) lub najciemniejszym ≤ 7 (czerń) nie liczą się do statystyki
Dominujące kubełki są sortowane według liczby pikseli; tyle najlepszych, ile wynosi rozmiar palety (5/8/12), każdy z udziałem procentowym obrazu

Zastosowania: spójna paleta marki wyciągnięta z logo, kolory tła i akcentów dobrane do zdjęcia produktu, gotowe zmienne CSS (--palette-1…n) do wklejenia w arkusz stylów.

Warto wiedzieć — ekstrakcja kolorów z obrazów

Co daje kwantyzacja co 32

Zamiast milionów odcieni pikseli obraz sprowadza się do kilkuset obszarów kolorystycznych, a paleta wybiera najliczniejsze. Dzięki temu 5–12 kolorów realnie opisuje zdjęcie — to „średnia” z obszaru, nie pojedynczy piksel.

Pomiń skrajne — po co

Białe tło i czarne obramowania statycznie dominują w zdjęciach produktowych i dokumentach. Włączenie opcji odsiewa biel (≥ 248) i czerń (≤ 7), więc paleta pokazuje właściwe kolory motywu, a nie tło.

Od palety do CSS

Kolory dostajesz w trzech formach: lista HEX (do projektów i grafiki), lista rgb() (do narzędzi graficznych) oraz blok :root ze zmiennymi --palette-1…n, który wklejasz na początku arkusza stylów i używasz jako var(--palette-1).

Bezpieczne przetwarzanie

Obraz analizuje biblioteka GD na serwerze (plik do 2 MB). ImageGuard sprawdza budżet pamięci przed dekodowaniem, więc nawet sprytnie spreparowany nagłówek obrazu nie zawiesi analizy — bitmapa po prostu nie zostanie otwarta.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Ekstraktor kolorów z obrazu – paleta z dowolnego zdjęcia

Chcesz wiedzieć jakie kolory dominują na zdjęciu? Ekstraktor analizuje obraz i wydobywa N najbardziej reprezentatywnych kolorów. Przydatne przy tworzeniu palet designowych z fotografii, brandingu i generowaniu harmonijnych zestawień kolorów.

ekstraktor kolorów z zdjęcia paleta kolorów z obrazu color picker z foto dominant colors extractor

Algorytmy ekstrakcji kolorów

k-means clustering: dzieli piksele na K klastrów podobnych kolorów – centra klastrów to dominujące kolory. Szybki, ale wyniki zależą od inicjalizacji. Median Cut: rekurencyjnie dzieli przestrzeń kolorów na pudełka – deterministyczny. Octree quantization: drzewo ósemkowe pikseli – szybki dla dużych obrazów. Wynik: 3-16 kolorów w zależności od ustawień.

Parametry ekstrakcji

Liczba kolorów (K): 3 (dominant palette), 6 (pełna paleta), 12 (szczegółowa). Pomijanie skrajnych jasności: opcjonalne wykluczenie bardzo jasnych (biały) i bardzo ciemnych (czarny) pikseli. Próbkowanie: 100% pikseli (dokładne, wolne) lub 10% losowych (szybkie). Przestrzeń kolorów: RGB (domyślna) lub LAB (bardziej perceptualna).

Formaty eksportu palety

HEX lista: #FF5733, #3498DB, #2ECC71. CSS variables: --color-1: #FF5733; --color-2: #3498DB;. JSON: [{"hex":"#FF5733","rgb":[255,87,51],"percentage":32.5}]. SVG palette (wizualizacja). Figma: kopiuj HEX i wklej do Color Styles. Tailwind: obiekt config.

Zastosowania ekstrakcji kolorów

Brand colors z logo: prześlij logo i wyodrębnij oficjalne kolory marki. Paleta z fotografii: spójny schemat kolorów dla projektu. Analiza konkurencji: jakie kolory używa firma X. Automatyczne tło: dopasuj tło strony do głównego koloru zdjęcia produktu. Art direction: paleta dla całego projektu z hero image.

Od pikseli do palety — co dzieje się między wgraniem pliku a listą HEX

Po wgraniu obraz trafia do niewidocznego płótna w pamięci przeglądarki i zostaje rozłożony na pojedyncze piksele. Każdy piksel to trójka liczb całkowitych z zakresu 0–255, oznaczająca nasycenie kanału czerwonego, zielonego i niebieskiego. Od tego momentu obraz przestaje być grafiką, a staje się zbiorem punktów w trójwymiarowej przestrzeni kolorów — i tylko na tym zbiorze pracuje algorytm. Jeśli włączysz próbkowanie 10%, narzędzie losuje część pikseli zamiast przetwarzać wszystkie; reszta obrazu nie wpływa wtedy na wynik. Jeśli włączysz pomijanie skrajnych jasności, piksele o jasności bliskiej bieli i czerni są odrzucane jeszcze przed grupowaniem, więc nie ciągną palety w stronę tła.

Grupowanie w k-means opiera się na minimalizowaniu sumy kwadratów odległości pikseli od przypisanych im centrów. Dla każdego piksela p i centrum c liczy się odległość euklidesową w przestrzeni kolorów, piksel trafia do najbliższego centrum, a następnie każde centrum jest przeliczane jako średnia arytmetyczna składowych wszystkich pikseli w swoim klastrze. Te dwa kroki powtarzają się do momentu, gdy przypisania przestają się zmieniać. Odległość w RGB jest tania obliczeniowo, ale słabo oddaje to, jak oko widzi różnice — dlatego wybór przestrzeni LAB daje palety bardziej równomierne percepcyjnie, kosztem dodatkowej konwersji każdego piksela.

Median Cut i octree działają inaczej: nie szukają centrów, tylko dzielą zbiór pikseli na coraz mniejsze podzbiory, aż do uzyskania zadanej liczby grup, a kolor reprezentatywny bierze się z wnętrza przedziału, a nie z jego średniej. Efekt praktyczny jest taki, że median cut daje wynik powtarzalny dla tego samego pliku, natomiast k-means z losową inicjalizacją może przy dwóch uruchomieniach zwrócić nieco inne odcienie. Udział procentowy przy każdym kolorze to po prostu liczba pikseli w klastrze podzielona przez liczbę pikseli, które wzięły udział w analizie, pomnożona przez 100.

Przykład krok po kroku: sześć pikseli i dwie składowe palety

  1. Do analizy bierzemy obrazek o sześciu pikselach: (255,0,0), (250,10,5), (0,0,255), (5,10,250), (255,255,255) oraz (0,0,0). Ustawiamy liczbę kolorów K = 2, próbkowanie 100%, przestrzeń RGB i włączone pomijanie skrajnych jasności.
  2. Filtr jasności odrzuca piksel biały (255,255,255) i czarny (0,0,0), bo oba leżą na krańcach zakresu. Do grupowania zostają cztery piksele: dwa czerwone i dwa niebieskie.
  3. Inicjalizacja wybiera dwa centra startowe możliwie daleko od siebie, czyli czerwone (255,0,0) i niebieskie (0,0,255). Każdy piksel jest przypisywany do bliższego centrum — klastry układają się zgodnie z oczekiwaniem: po dwa piksele w każdym.
  4. Liczymy nowe centrum klastra czerwonego jako średnią składowych: R = (255+250)/2 = 252,5; G = (0+10)/2 = 5; B = (0+5)/2 = 2,5. Po zaokrągleniu do liczb całkowitych powstaje kolor (253,5,3), czyli HEX #FD0503.
  5. Analogicznie dla klastra niebieskiego: R = (0+5)/2 = 2,5; G = (0+10)/2 = 5; B = (255+250)/2 = 252,5. Po zaokrągleniu (3,5,253), czyli HEX #0305FD.
  6. Przypisania nie zmieniają się w kolejnej iteracji, więc algorytm się zatrzymuje. Każdy klaster zawiera 2 z 4 analizowanych pikseli, więc oba kolory mają udział 50%. Wynikowa paleta to dwa wpisy: #FD0503 (50%) i #0305FD (50%).

Ustawienia ekstrakcji — co wybrać i kiedy

UstawienieDostępne wartościKiedy ma sens
Liczba kolorów (K)3, 6, 12 (zakres 3–16)3 do tła i akcentu, 6 do pełnej palety projektu, 12 gdy potrzebna szczegółowość
Próbkowanie100% pikseli lub 10% losowych100% gdy liczy się dokładność i obraz jest mały, 10% gdy zdjęcie jest duże i liczy się czas
Przestrzeń kolorówRGB lub LABRGB gdy wynik ma trafić wprost do HEX i CSS, LAB gdy paleta ma być percepcyjnie równomierna
Pomijanie skrajnych jasnościwłączone lub wyłączonewłączone przy zdjęciach na białym lub czarnym tle, wyłączone gdy biel i czerń należą do marki
Algorytmk-means, median cut, octreek-means uniwersalnie, median cut gdy potrzebna powtarzalność, octree przy dużych obrazach
Format eksportuHEX, CSS variables, JSON, SVG, Figma, Tailwindzależnie od tego, gdzie paleta ma zostać użyta — od arkusza stylów po dokumentację
Kolory w wynikucentroidy klastrówzawsze punkt wyjścia do ręcznej korekty, nie gotowa decyzja projektowa

Jak wycisnąć z ekstrakcji użyteczną paletę

  • Zmniejsz obraz przed wgraniem. Ekstraktor i tak nie potrzebuje pełnej rozdzielczości, żeby znaleźć dominujące kolory, a mniejszy plik szybciej przechodzi przez grupowanie — zwłaszcza przy ustawieniu 100% pikseli.
  • Zacznij od K = 6. To kompromis między paletą czytelną a kompletną. Dopiero gdy widać, że brakuje odcieni, zwiększaj liczbę kolorów — przy zbyt dużym K paleta zaczyna się rozmywać na podobne warianty tego samego koloru.
  • Przy zdjęciach studyjnych włącz pomijanie skrajnych jasności. Białe tło potrafi zająć większość powierzchni obrazu i wypchnąć z palety właściwe kolory produktu. Ten sam mechanizm działa dla czarnych teł.
  • Sprawdź udziały procentowe, zanim cokolwiek wyeksportujesz. Kolor z udziałem kilku procent to detal, nie dominanta — jeśli chcesz zbudować na nim tło strony, wynik będzie przypadkowy. Sięgaj po kolory o największym udziale, a małe traktuj jako akcenty.
  • Porównaj RGB i LAB na tym samym pliku. Jeśli obie palety wyglądają podobnie, temat jest prosty i możesz zostać przy RGB. Jeśli LAB daje wyraźnie lepiej rozdzielone odcienie, użyj go jako podstawy i dopiero na końcu skonwertuj kolory do HEX.

Czego wynik nie uwzględnia

  • Przewagi powierzchni nad treścią. Algorytm nie wie, co jest tematem zdjęcia. Duży, jednolity obszar — tło, niebo, blat — zawsze zdominuje klaster, nawet jeśli najważniejszy obiekt zajmuje niewielką część kadru. Kadrowanie przed wgraniem bywa skuteczniejsze niż zmiana ustawień.
  • Konwersji i profilu koloru. Analiza patrzy na wartości zapisane w pliku, a nie na to, jak obraz wygląda na Twoim monitorze. Ten sam plik otwarty w programie respektującym inny profil może pokazywać inne odcienie niż kolory wyliczone przez ekstraktor.
  • Losowości inicjalizacji w k-means. Przy tym samym pliku i tej samej liczbie kolorów kolejne uruchomienia mogą zwrócić nieznacznie różne centra, bo algorytm nie gwarantuje optimum globalnego. Gdy potrzebujesz powtarzalności, sięgnij po median cut.
  • Przezroczystości i artefaktów. Piksele w pełni przezroczyste nie mają koloru, więc jeśli nie zostaną odrzucone, zafałszują proporcje klastrów. Podobnie skompresowane pliki wnoszą przypadkowe piksele wokół krawędzi, które potrafią trafić do palety jako odrębny odcień.

Najczęstsze pytania

Jak dokładny jest algorytm k-means dla kolorów?

K-means daje dobre wyniki dla K=6-12 i wystarczającej liczby pikseli. Problem: inicjalizacja losowa może dawać różne wyniki przy każdym uruchomieniu. Rozwiązanie: k-means++ (deterministyczna inicjalizacja) lub wielokrotne uruchomienie i wybranie najlepszego. Dla logo (mało kolorów, ostre krawędzie): median cut jest lepszy.

Jak wyodrębnić kolory ze zdjęcia w Pythonie?

from PIL import Image; from sklearn.cluster import KMeans; img = Image.open("photo.jpg").convert("RGB"); pixels = list(img.getdata()); kmeans = KMeans(n_clusters=6).fit(pixels); colors = kmeans.cluster_centers_. Pakiet colorthief (pure Python, podobne podejście) jest prostszy w użyciu.

Czy narzędzie wysyła zdjęcia na serwer?

Nie – przetwarzanie odbywa się lokalnie przez Canvas API (JavaScript). Zdjęcie jest wczytywane do pamięci przeglądarki, piksele odczytywane przez ctx.getImageData(). Brak uploadu na serwer. Prywatność: twoje zdjęcia nie opuszczają urządzenia.

Jak używać palety z zdjęcia w Figma?

Skopiuj HEX kolory z narzędzia. W Figma: Resources → Colors → + (dodaj). Lub: stwórz prostokąty z każdym kolorem, zaznacz → Styles → Create Style. Figma Palette plugin (community) może importować bezpośrednio z URL.

Jak dobrać gradienty na podstawie wyodrębnionych kolorów?

Weź 2 sąsiednie kolory z palety (kolor 1 i kolor 2). Użyj narzędzia blender kolorów HEX do generowania przejść. Przestrzeń OKLCH: gradient z oklch() w CSS daje naturalne przejście. Przykład: linear-gradient(to right, oklch(from #FF5733 l c h), oklch(from #3498DB l c h)).

Ile kolorów mogę wyciągnąć z jednego zdjęcia?

Od 3 do 16, zależnie od ustawienia liczby kolorów. W praktyce najczęściej używa się 3, 6 lub 12 — kolejne wartości zwiększają szczegółowość, ale różnice między sąsiednimi kolorami stają się coraz mniejsze.

Dlaczego przy dwóch uruchomieniach dostaję inne odcienie?

To efekt losowej inicjalizacji w algorytmie k-means — punkty startowe centrów są wybierane niedeterministycznie, a algorytm nie zawsze trafia w optimum globalne. Jeśli potrzebujesz identycznego wyniku za każdym razem, użyj median cut.

Czy wyodrębnione kolory występują w obrazie?

Nie zawsze. Centroid klastra to średnia arytmetyczna składowych wielu pikseli, więc może wypaść między odcieniami obecnymi w pliku. Algorytmy dzielące, jak median cut i octree, zwracają kolory bliższe tym rzeczywistym.

Jak wyciągnąć kolory z logo na białym tle?

Włącz pomijanie skrajnych jasności i ustaw małą liczbę kolorów, na przykład 3. Dodatkowo przytnij obraz do samego znaku — im mniej tła w kadrze, tym mniejszy jego wpływ na proporcje klastrów.

Czy wynik da się przenieść do Figmy albo Tailwinda?

Tak, paletę eksportujesz jako listę HEX, zmienne CSS, JSON albo obiekt konfiguracyjny Tailwinda. W Figmie wystarczy wkleić wartości HEX do Color Styles, w projekcie z Tailwindem przenieść je odpowiednio do konfiguracji motywu.

Powiązane narzedzia: blender kolorów HEX, tester schematów kolorów i narzedzie do nazywania kolorów.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!