Bir 760x1 piksel gif resmin sağ 150 piksel değiştirmek için PHP imageCreateFromGif () kullanın

2 Cevap

Ben bir yinelenen dikey arka plan görüntüsü olarak kullanmak 760 piksel genişliğinde görüntüsüne göre uzun boylu bir 1 piksel var. Bu görüntünün sağ tarafında spot rengin (resmin geri kalan sol tarafı beyaz olan) ile doludur.

Bu arka plan görüntüsü amacı, benim css tabanlı düzeni, bu kenar çubuğu arka plan rengi (tablolar ile yapmak kolay, ancak CSS konumlandırma ile hiç bu kadar) tüm yol Sayfanın aşağı çalışır yanılsama sağlamasıdır.

Ne yapmam gereken bir php komut dosyası imagecreatefromgif işlevini içeren (background-image.php), bir onaltılık sayı beslemek ve onun nokta renk eşleşmesi için görüntünün nokta rengini yeniden boyamak için kullanan için bir yol anlamaya olduğunu geçti ve varsayılan bir yazılmadan, sunucu üzerine çıkan görüntü kaydetmek.

İdeal olarak, şablonu yükler sürekli bu işlevini çağırmak zorunda gibi ve kullanıcı şablon renklerini değiştirmek vazgeçerse ne zaman onlydo istemem. Onlar bunu Yani, bir kez ben her zaman "sidebar_bg.gif" adı verilecek ben sunucuda var varolan resmi değiştirmek istiyorum

Bunun nasıl herhangi bir fikir çok takdir edilmektedir.

2 Cevap

Böyle bir şey yapabilirdi:

$token = md5(serialize(array($red, $green, $blue)));

if (!file_exists('cachedir/'.$token.'.gif')) 
{
    $img = imagecreatefromgif('origfilename.gif');

    $color = imagecolorallocate($img, $red, $green, $blue);

    for ($i = $startPixel-1; $i < $endPixel; $i++)
    {
        imagesetpixel($img, $i, 0, $color);
    }

    imagegif($img, 'cachedir/'.$token.'.gif');
}

serveFile($token);

EDIT: örnek kod eklendi önbelleğe alma

Sadece bir ek this post. Sen folowing fonksiyonu ile RGB gösterimde haline HEX renk dönüştürebilirsiniz:

function hexToRGB ($hexColor)
{
    $output = array();
    $output['red']   = hexdec($hexColor[0].$hexColor[1]);
    $output['green'] = hexdec($hexColor[2].$hexColor[3]);
    $output['blue']  = hexdec($hexColor[4].$hexColor[5]);

    return $output;
}

örneğin deneyin:

var_dump(hexToRGB("FFFFFF"));