Saya mungkin perlu menyajikan konten di berbagai tingkatan tergantung pada jarak pengamat ke layar. Katakanlah dari jauh pengguna merasakan warna datar, tetapi dari jarak dekat pengguna harus dapat membaca beberapa teks. Bagian yang sulit adalah warna latar belakang datar diberikan / dapat diubah / saya tidak punya kendali atas.
Sejauh ini saya telah mengeluarkan prototipe yang sangat dasar untuk mengerjakan warna teks dari warna latar belakang (klik untuk memilih latar belakang acak). Ini adalah pendekatan yang sangat sepele: Saya mengambil rona dan mengimbanginya dengan 90 derajat (jadi cukup berbeda) dan membalikkan kecerahan dalam ruang warna HSB jadi saya mendapatkan warna yang cukup berbeda untuk dapat dibaca / memiliki kontras yang layak dengan latar belakang .
Ini terkadang berhasil:
terkadang tidak:
Apakah pendekatan ini baik / dalam arah yang baik? Jika demikian, bagaimana saya bisa menjadikan ini lebih baik? Jika tidak, arah mana yang harus saya ikuti?
Sayangnya saya tidak tahu banyak tentang teori jenis dan warna sehingga petunjuk / tips dari orang-orang dengan pengalaman sangat membantu. Ini akan ditampilkan di layar, bukan dicetak.
Apa hubungan antara warna latar belakang dan latar depan yang saya cari?
sumber
Di sini jawaban saya sebelumnya pada dasarnya pertanyaan yang sama di Game Development Stack Exchange.
Untuk meringkas, seperti jawaban lain yang disarankan di sini, Anda biasanya harus menggunakan hitam atau putih , tergantung mana yang lebih kontras dengan latar belakang. (Tentu saja, jika Anda suka, memberi sedikit warna pada kedua warna tidak akan terlalu memengaruhi kontras.)
Perhatikan bahwa, untuk menentukan dengan benar seberapa gelap atau terang sebuah warna muncul kepada pengguna, itu tidak cukup hanya dengan rata-rata nilai warna RGB (atau untuk mengambil kecerahan / nilai warna HSL / HSV). Sebaliknya, Anda harus memperhitungkan (setidaknya) dua efek:
non-linearitas perangkat yang warna ditampilkan , yang (untuk warna RGB pada layar komputer, setidaknya) cenderung untuk menggelapkan warna tengah, dan
sensitivitas spektral mata manusia , yang, secara kasar, menyebabkan warna di dekat bagian tengah spektrum yang terlihat (hijau, kuning, cyan) tampak lebih terang daripada yang di dekat tepi (biru, merah, ungu).
Masalah pertama dapat diperhitungkan dengan ekspansi gamma , sedangkan yang kedua hanya membutuhkan bobot yang tidak seragam dari saluran warna R / G / B. Secara bersama-sama, inilah cara kira-kira menghitung kecerahan yang dirasakan dari warna RGB, dan memutuskan apakah hitam atau putih akan kontras dengan yang lebih baik:
Itu dengan asumsi itu
R
,G
danB
angka floating-point antara 0,0 hingga 1,0. Jika Anda memiliki mis. Integer dari 0 hingga 255, konversikan menjadi float dan bagilah dengan 255.Konstanta dalam kode di atas (kurang-lebih) benar untuk input sRGB ; Anda dapat menyesuaikannya jika Anda bekerja di ruang warna lain, meskipun nilai yang tepat tidak terlalu penting: untuk warna yang cukup gelap atau terang, jawabannya tetap sama, sedangkan warna yang jatuh di dekat garis batas akan kontras hampir sama baiknya dengan hitam atau putih pula.
sumber
Saya setuju dengan John, simpan teks sebanyak mungkin hitam / putih hanya untuk memastikan, Anda dapat menambahkan sedikit saturasi ke teks juga dan Anda aman. Ini adalah tes kecil:
Lihat di 100% di sini: http://flavius.clickgarden.net/random-hsb-bg-readable-text/test-01.png Unduh file .ai (sumber) di sini untuk diputar: http: // flavius. clickgarden.net/random-hsb-bg-readable-text/test.ai
sumber