Renk Dönüştürücü

Renkleri HEX, RGB, HSL ve HSV formatları arasında görsel renk seçiciyle dönüştürün

Örnek dene

Renk seçiciyi açmak için örneğe tıklayın

Veya aşağıdaki herhangi bir değeri düzenleyin

HEX
RGB
HSL
HSV

Renk Dönüşümü Nedir?

Bir renk dönüştürücü, bir renk değerini bir gösterimden diğerine çevirir — örneğin bir HEX üçlüsünden (#6366F1) RGB demetine (99, 102, 241) veya HSL üçlüsüne (239, 84%, 67%). Aynı renk HSV üçlüsü olarak da ifade edilebilir (239, 59%, 95%). Her format, aynı görsel rengi farklı bir matematiksel modelle kodlar; farklı araçlar, diller ve API'ler bağlama göre farklı formatlar bekler.

HEX ve RGB rengi kırmızı, yeşil ve mavi ışığın karışımı olarak tanımlar. HEX, RGB'nin ondalık olarak ifade ettiği aynı üç 0-255 kanal değerinin kompakt bir onaltılık gösterimidir. HSL (Ton, Doygunluk, Açıklık) ve HSV (Ton, Doygunluk, Değer) ise aynı bilgiyi silindirik bir koordinat sistemine dönüştürür; burada ton bir renk çarkında açı (0-360 derece), doygunluk ve açıklık ya da parlaklık ise yüzdedir. Bu, HSL ve HSV'yi aynı tonun daha açık veya daha koyu tonlarını oluşturmak gibi işlemler için daha sezgisel kılar.

Bu formatlar arasında dönüşüm yapmak için iyi tanımlanmış matematik gerekir. W3C CSS Color Module Level 4 spesifikasyonu, tarayıcıların herhangi bir CSS rengini sRGB üçlüsüne çözmek için kullandığı algoritmaları belgeler. Formüller deterministiktir: belirli bir girdi her zaman aynı çıktıyı üretir; dolayısıyla değerler yuvarlanmadığı veya sınırlandırılmadığı sürece dönüşümler kayıpsızdır. Çoğu renk seçici ve tasarım aracı aynı formülleri arka planda kullanır.

Bu Renk Dönüştürücüyü Neden Kullanmalısınız?

Tasarım araçları renkleri bir formatta dışa aktarır, CSS'iniz başka bir format bekler, çağırdığınız API ise üçüncü bir format ister. Dönüşüm kodu yazmak ya da doğru formülü aramak yerine bir değer yapıştırın ve tüm formatları aynı anda alın.

Anlık Canlı Dönüşüm
Bir renk yazın veya seçin; HEX, RGB, HSL ve HSV gerçek zamanlı olarak güncellenir. Gönder düğmesi yok, sunucuya gidiş-dönüş yok.
🔒
Gizlilik Öncelikli İşlem
Tüm dönüşüm hesaplamaları tarayıcınızda çalışır. Hiçbir renk değeri, kullanım verisi veya çerez hiçbir yere gönderilmez.
🔀
Dört Format Aynı Anda
Tek bir girdi aynı anda HEX, RGB, HSL ve HSV üretir. Tek tıklamayla ihtiyacınız olan formatı kopyalayın.
📋
Hesap Gerektirmez
Sayfayı açın ve dönüştürmeye başlayın. Kayıt yok, e-posta yok, hız limiti yok. Yüklendikten sonra çevrimdışı çalışır.

Renk Dönüştürücü Kullanım Senaryoları

CSS Geliştirme
Bir tasarımcı Figma'dan size HEX değeri verir, ancak bileşen kitaplığınız tema için HSL kullanır. Değeri dönüştürün ve CSS özel özelliklerinize ya da Tailwind yapılandırmanıza ekleyin.
Backend API Entegrasyonu
Uç noktanız grafik oluşturma için renkleri RGB dizileri olarak kabul ediyor. Stil kılavuzundaki marka HEX kodlarını API'nin beklediği tam sayı üçlülerine dönüştürün.
Tasarım Sistemi Bakımı
Bir tasarım sistemini belgelemek için her renk belirtecinin hızlı başvuru için HEX olarak, Canvas rendering için RGB olarak ve programatik ton üretimi için HSL olarak listelenmesi gerekir.
QA ve Görsel Test
Bir ekran görüntüsünün piksel rengini (genellikle tarayıcı DevTools tarafından RGB olarak raporlanır) Figma spesifikasyonundaki beklenen HEX değeriyle karşılaştırma. Hızlı dönüşüm uyumsuzlukları doğrular veya işaretler.
Veri Görselleştirme
D3.js ve Chart.js gibi grafik kütüphaneleri metoda göre farklı formatlarda renk kabul eder. Bir kez dönüştürün ve veri kümesi yapılandırmanızda tutarlı bir gösterim kullanın.
Renk Teorisi Öğrenme
Bilgisayar grafikleri veya web tasarımı öğrenen öğrenciler, aynı rengin HEX, RGB, HSL ve HSV'de nasıl eşlendiğini görebilir. Bir kanalı ayarlayıp diğerlerinin nasıl değiştiğini izlemek, renk modellerinin nasıl ilişkili olduğuna dair sezgi geliştirir.

Renk Formatı Referansı

Aşağıdaki tablo, beş yaygın renk formatını listeler; her gösterimde aynı indigo rengi (#6366F1) gösterilmektedir. HEX ve RGB, CSS ve JavaScript'te en geniş destek gören formatlardır. HSL, açıklık ve doygunluğun ayarlanması kolay olduğu için tema oluşturmada tercih edilir. HSV ise çoğu grafik tasarım yazılımı renk seçicisinde kullanılan modeldir.

FormatÖrnek (indigo)KanallarYaygın kullanım
HEX#6366F16 (or 3/8)CSS, design tools, brand guides
RGBrgb(99, 102, 241)3 (0–255 each)CSS, Canvas API, image processing
HSLhsl(239, 84%, 67%)3 (deg, %, %)CSS, color theming, accessibility tuning
HSVhsv(239, 59%, 95%)3 (deg, %, %)Color pickers, Photoshop, Figma
CMYKcmyk(59%, 58%, 0%, 5%)4 (0–100% each)Print design, prepress workflows

HEX - RGB - HSL Karşılaştırması

Üç format da aynı sRGB renk uzayını tanımlar. Fark, veriyi nasıl sunduklarındadır; bu da farklı bağlamlarda okunabilirlik ve değiştirme kolaylığını etkiler.

HEX
6 haneli onaltılık bir dize (veya 3 haneli kısa biçim). CSS, tasarım araçları ve marka yönergelerinde kompakt ve evrenseldir. İlk bakışta okumak zordur: #6366F1 size tonu söylemez. Alfa şeffaflığı için isteğe bağlı 8 haneli biçimi (#6366F180) destekler.
RGB
Kırmızı, yeşil ve mavi kanalları için 0-255 arasında üç tam sayı. Canvas 2D, WebGL ve çoğu görüntü işleme kütüphanesi için yerel format. Kanal kanal değiştirmesi kolaydır, ancak algılanan parlaklığı ayarlamak üç değerin birlikte değiştirilmesini gerektirir.
HSL
Ton (0-360 derece), doygunluk (0-100%) ve açıklık (0-100%). İnsan tarafından okunabilirlik için tasarlanmıştır. Bir rengi açmak için L'yi artırın. Doygunluğu azaltmak için S'yi düşürün. CSS, hsl() gösterimini doğal olarak destekler; modern CSS color-mix() ve göreli renk sözdizimi de bunu temel alır.

Kod Örnekleri

Yaygın diller ve ortamlarda HEX, RGB ve HSL arasında renk dönüşümü. Her örnek kolay karşılaştırma için aynı indigo rengini (#6366F1) kullanır.

JavaScript
// HEX → RGB
function hexToRgb(hex) {
  const n = parseInt(hex.replace('#', ''), 16)
  return [(n >> 16) & 255, (n >> 8) & 255, n & 255]
}
hexToRgb('#6366f1') // → [99, 102, 241]

// RGB → HSL
function rgbToHsl(r, g, b) {
  r /= 255; g /= 255; b /= 255
  const max = Math.max(r, g, b), min = Math.min(r, g, b)
  const l = (max + min) / 2
  if (max === min) return [0, 0, Math.round(l * 100)]
  const d = max - min
  const s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
  let h = 0
  if (max === r) h = ((g - b) / d + (g < b ? 6 : 0)) / 6
  else if (max === g) h = ((b - r) / d + 2) / 6
  else h = ((r - g) / d + 4) / 6
  return [Math.round(h * 360), Math.round(s * 100), Math.round(l * 100)]
}
rgbToHsl(99, 102, 241) // → [239, 84, 67]
Python
import colorsys

# HEX → RGB
def hex_to_rgb(hex_str: str) -> tuple[int, int, int]:
    h = hex_str.lstrip('#')
    return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))

hex_to_rgb('#6366f1')  # → (99, 102, 241)

# RGB → HSL (colorsys uses HLS order)
r, g, b = 99 / 255, 102 / 255, 241 / 255
h, l, s = colorsys.rgb_to_hls(r, g, b)
print(f"hsl({h * 360:.0f}, {s * 100:.0f}%, {l * 100:.0f}%)")
# → hsl(239, 84%, 67%)

# RGB → HSV
h, s, v = colorsys.rgb_to_hsv(r, g, b)
print(f"hsv({h * 360:.0f}, {s * 100:.0f}%, {v * 100:.0f}%)")
# → hsv(239, 59%, 95%)
Go
package main

import (
	"fmt"
	"math"
)

func hexToRGB(hex string) (int, int, int) {
	var r, g, b int
	fmt.Sscanf(hex, "#%02x%02x%02x", &r, &g, &b)
	return r, g, b
}

func rgbToHSL(r, g, b int) (int, int, int) {
	rf, gf, bf := float64(r)/255, float64(g)/255, float64(b)/255
	max := math.Max(rf, math.Max(gf, bf))
	min := math.Min(rf, math.Min(gf, bf))
	l := (max + min) / 2
	if max == min {
		return 0, 0, int(math.Round(l * 100))
	}
	d := max - min
	s := d / (2 - max - min)
	if l <= 0.5 {
		s = d / (max + min)
	}
	var h float64
	switch max {
	case rf: h = (gf - bf) / d; if gf < bf { h += 6 }
	case gf: h = (bf - rf) / d + 2
	case bf: h = (rf - gf) / d + 4
	}
	return int(math.Round(h / 6 * 360)), int(math.Round(s * 100)), int(math.Round(l * 100))
}

func main() {
	r, g, b := hexToRGB("#6366f1")
	fmt.Println(r, g, b)         // → 99 102 241
	fmt.Println(rgbToHSL(r, g, b)) // → 239 84 67
}
CSS
/* Modern CSS supports multiple color formats natively */

/* HEX notation */
.button { color: #6366f1; }

/* RGB functional notation */
.button { color: rgb(99 102 241); }

/* HSL — easier to adjust lightness and saturation */
.button { color: hsl(239 84% 67%); }

/* CSS Color Level 4: relative color syntax (Chrome 119+) */
.button-light { color: hsl(from #6366f1 h s calc(l + 20%)); }

/* color-mix() for tinting without manual conversion */
.button-muted { color: color-mix(in srgb, #6366f1 70%, white); }

Sıkça Sorulan Sorular

HSL ile HSV arasındaki fark nedir?
Her ikisi de ton ve doygunluğu kullanır, ancak parlaklığı farklı tanımlar. HSL, açıklık kullanır: %50 saf renk, %0 siyah ve %100 beyazdır. HSV ise değer (veya parlaklık) kullanır: %100 saf renk, %0 ise siyahtır. HSV'nin doğrudan bir beyaz uç noktası yoktur. Pratikte HSL, CSS ve web geliştirmede kullanılırken HSV, Photoshop ve Figma gibi tasarım yazılımlarındaki çoğu renk seçicinin arkasındaki modeldir.
JavaScript'te HEX'i RGB'ye nasıl dönüştürürüm?
Onaltılık dizeyi parseInt(hex, 16) ile tam sayıya dönüştürün, ardından bit kaydırmayla her kanalı çıkarın: kırmızı için (n >> 16) & 255, yeşil için (n >> 8) & 255, mavi için n & 255. Bu, baştaki # işareti olan veya olmayan herhangi bir 6 haneli onaltılık dizeyi işler. #F0F gibi 3 haneli kısa biçimler için önce her haneyi genişletin (FF00FF), ardından ayrıştırın.
CSS'te HSL'yi doğrudan kullanabilir miyim?
Evet. Tüm modern tarayıcılar CSS'te hsl() ve hsla() destekler. CSS Color Level 4'ten itibaren sözdizimi boşlukla ayrılmış değerlerle hsl(239 84% 67%) şeklindedir (virgüller hâlâ kabul edilir). Dördüncü parametre olarak alfa da ekleyebilirsiniz: hsl(239 84% 67% / 0.5). Safari, Chrome, Firefox ve Edge bu sözdizimini destekler.
Renk dönüşümü kayıplı mıdır?
Matematiksel olarak hayır. HEX, RGB, HSL ve HSV hepsi aynı sRGB renk uzayını tanımlar ve dönüşümler tersine çevrilebilir. Pratikte küçük yuvarlama farkları ortaya çıkabilir; zira HEX kanal başına 256 adımla sınırlıdır ve HSL yüzdeleri genellikle tam sayıya yuvarlanır. Birden fazla kez ileri geri dönüştürmek 1-2 birimlik yuvarlama hatalarını biriktirebilir.
8 haneli HEX formatı nedir?
8 haneli HEX formatı, standart 6 haneli HEX rengine iki alfa (şeffaflık) hanesi ekler. Örneğin #6366F180, aynı indigo renginin %50 saydamlıkta olduğu anlamına gelir (0x80 = 128, yaklaşık olarak 255'in %50'si). CSS bu gösterimi tüm modern tarayıcılarda destekler. Kısa biçimi #63F8 gibi 4 hanedir.
Rengim neden başka bir monitörde farklı görünüyor?
Renk görünümü, monitörün renk profili, parlaklık ve gama kalibrasyonuna bağlıdır. İki ekran, renk profilleri farklılaşıyorsa aynı sRGB değerini (#6366F1) farklı görüntüleyebilir. Renk dönüştürme araçları tanımlı bir renk uzayında (genellikle sRGB) çalışır ve matematiksel olarak doğru çıktı üretir. Algılanan farklılıklar bir ekran kalibrasyon sorunudur, dönüşüm hatası değil.
Bir rengin daha açık veya daha koyu tonunu nasıl seçerim?
Rengi HSL'ye dönüştürün ve L (açıklık) kanalını ayarlayın. L'yi %100'e doğru artırmak daha açık tonlar üretir; %0'a doğru azaltmak ise daha koyu tonlar. Ton ve doygunluk aynı kalır. CSS'te bunu doğrudan yapabilirsiniz: hsl(239 84% 80%), hsl(239 84% 67%)'nin daha açık bir versiyonudur. Modern CSS ayrıca manuel dönüşüm olmadan aynı efekt için color-mix(in srgb, #6366F1, white 30%) sunar.