Autor Zpráva
asseN
Profil
Dobrý den,

mám problém s imagefill

Fotka na šířku má pozadí v pohodě, ale když nahravám fotku na výšku tak vlevo je ta barva kterou chci a vpravo je černá.. Nevíte proč?

function ak_img_thumb($target, $newcopy, $w, $h, $ext) {
    list($w_orig, $h_orig) = getimagesize($target);
    $src_x = ($w_orig / 2) - ($w / 2);
    $src_y = ($h_orig / 2) - ($h / 2);
    $ext = strtolower($ext);
    $img = "";
    if ($ext == "gif"){
    $img = imagecreatefromgif($target);
    } else if($ext =="png"){
    $img = imagecreatefrompng($target);
    } else {
    $img = imagecreatefromjpeg($target);
    }
    $tci = imagecreatetruecolor($w, $h);
    imagecopyresampled($tci, $img, 0, 0, $src_x, $src_y, $w, $h, $w, $h);
    $bg = imagecolorallocate ($tci, 241, 241, 241);
    imagefill ($tci, 0, 0, $bg);
    if ($ext == "gif"){
        imagegif($tci, $newcopy);
    } else if($ext =="png"){
        imagepng($tci, $newcopy);
    } else {
        imagejpeg($tci, $newcopy, 100);
    }
} 

Děkuji za odpoveď
Alphard
Profil
Chvíli jsem si s tím hrál. Nechce se mi luštit, čeho chcete dosáhnout, ale našel jsem vaši variantu parametrů s černou pravou stranu a odstranil ji takto
    $bg = imagecolorallocate ($tci, 100, 100, 100);
    imagefill ($tci, 0, 0, $bg);
    imagecopyresampled($tci, $img, ($w-$w_orig)/2, ($h-$h_orig)/2, 0, 0, $w_orig, $h_orig, $w_orig, $h_orig);
Doporučuji prvně obarvit plochu, pak tam kopírovat obrázek.
Vaše původní parametry mi jsou mírně záhadnou, pochopil jsem, že nechcete kopírovat obrázek do levého rohu.

Navíc teda 100% kvalita u jpeg nemá smysl, od 90 při téměř nepozorovatelném nárustu kvality velice roste datová velikost.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: