Nasıl PHP veya Ruby ile bir görüntünün belirli renkleri kaldırmak için?

3 Cevap php

Siyah, kırmızı, mavi: 3 çevreler olduğunu söylüyor.

Ben sadece siyah daire kalmasını istiyorum. Nasıl kırmızı ve mavi daireler kaldırabilirim?

3 Cevap

Eğer bir PHP çözüm için sordum beri:

  • İlk imagecreatefrompng veya diğer görüntü formatları için benzer fonksiyonları ile resim yüklemek
  • Daha sonra, imagesx kullanın ve imagesy görüntünün boyutunu almak.
  • Şimdi, ne tüm pikseller üzerinde döngü yoluyla yapabilirsiniz

    for ($i = 0; $i < $imageWidth; $i++) {
        for ($j = 0; $j < $imageHeight; $j++) {
            // check color and replace
        }
    }
    
  • Son olarak, imagecolorat Tüm (o range, iyi bir renk olarak only siyah yapmayız bir spesifik olup olmadığını kontrol renk olsun, ama aynı zamanda kullanmak kırmızı, yeşil ve mavi örneğin her değerinde> = 250 var renkler)

  • ... Ve imagecolorset rengini ayarlamak için
  • Şimdi örneğin imagepng kullanarak görüntüyü kaydedebilirsiniz.

ImageMagick bunu yapacağız. Sadece bu komuta ödemek:

convert circles.png -channel black -white-threshold 10% circles2.png

Yeşil ile ne söylemedi. Bu komut çıkış kolay yol alır ve de yeşil mendil. Aslında, siyah değil, bir şey dışarı mendil.

RMagick kitaplığındaki Ruby ile ImageMagick sürmenizi sağlar. Ne yazık ki, benim dağıtıma çalışma değil, bu yüzden senin için bir örnek hazırlayamaz. Ancak, komut için dışarı kabuk sistem veya backtick kullanarak gayet güzel çalışıyor.

O kullanıldığı ediliyor ne görüntü formatı biliyorsanız, büyük olasılıkla başka türlü buna benzer bir şey yapmak, piksel değerleri (muhtemelen yok görüntü kalitesi) üzerinden erişmesini önlemek için bu bilgileri kullanabilirsiniz:

  1. Piksel bir dizi olarak biteşleminin
  2. Uzak kaldırmak istediğiniz renk herhangi bir belirli bir eşik adım içinde yatıyor, arka plan rengi ayarlama, her bir pikselin üzerinde haritada.

Bu orada piksel ayarlanabilir herhangi bir zamanda belirli bir arka plan rengi ve kaldırmak renkleri belirleyebilir o dayanır.