Nasıl Dabble Renk Düzenleri taklit etmek?

1 Cevap php

Eğer ne benzer bir şey nasıl gelişecek described in this DabbleDB blog post?

1 Cevap

Sadece cevap bir kinda related SO question yesterday. Sonuçta orada birlikte bazı kavramların, test code (on git hub) iyi bir başlangıç ​​olabilir.

evolve bahseder gibi, bir resim (hatta sadece sınır) her pikseli tarayarak yoğun kaynak olabilir. (Eğer sadece ortalama renk çok daha tanımlamak istiyorum çünkü) Ancak, bu durumda gitmek için yol olabilir. Aklı başında bir boyutu logosunu yeniden boyutlandırma sunucu yükünü azaltmaya yardımcı olur, ve gerçekten çıktı etkisi olmamalıdır.

Update, For these examples assume an image object has been created and $width ve $height kullanılarak tespit edilmiştir imagesx(), getimagesize(), vs

Background Color

Yapmamız gereken ilk şey, logonun arka plan rengini anlamaya oldu. Ve tüm ilk sürümü köşe pikseller kullanarak yaptım.

İşte imagecolorat() köşe renkleri bulmak için kullanın. Alternatif olarak, üst başvurulan cevabını ortalama sınır renk yöntemi kullanın.

$color = imagecolorat($image, 0, 0); //do this for each corner
$rgb = imagecolorsforindex($image, $color); //convert each color to a RGB array
//average colors

Saturation

Doygunluk: Bu renk teorisi interestingness.Örneğin ölçmenin bir yolu vardır çıkıyor. Bu yüzden logo ilginç bir renk çıkardı. Sınır için aynı renk ve metin yapılmış şeyleri istediğimiz biraz daha monoton kullanarak, bu yüzden mevcut iseniz, sonunda iki ilginç renkleri denemek ve kapmak karar verdi.

Sen yüksek doygunluk ile renk değerlerini bulmak için along with the pixel scanning code üst kısmında belirtildiği imagecolorsforindex() kılavuz sayfasına HSL işlevlerine RGB kullanabilirsiniz.

Luminance

Biz renk teorisi tekrar döndü ve biz siyah veya beyaz metin daha uygun olduğunu karar vermek için sınır rengin parlaklığı kullanabilirsiniz gerçekleştirdi.

Bu SO thread parlaklık hesaplamalara farklı RGB listeler. Ben 0-255 RGB görüntüleri dönüştürmek için en iyi olanı yöntem, belirli (veya teknik olarak doğru) değilim. Ama bu (metin koyu veya açık olmalıdır) gerçekleştirmek ne için, ben çok that Önemli sanmıyorum.