Autor Zpráva
Richard1234
Profil *
Čau,

mám různé velikosti obrázků, ale potřebuji je mít ve stejné velikost. Přes GD knihovnu si přes PHP vytvořím plochu do které "vložím" daný obrázek a ten vycentruji horizontálně i vertikálně. To samozřejmě způsobí, že tam jsou okraje. Proto jsem si vytvořenou plochu chtěl obravit místo výchozí černé na bílou. Kód tedy vypadá takto:

$new_img_dst = imagecreatetruecolor (115,86); // Plocha nového obrázku
$white = imagecolorallocate ($new_img_dst,255,255,255); // Bílá barva pro obarvení plochy nového obrázku
imagefill ($new_img_dst,0,0,$white); // Samotné obarvení plochy (výchozí je čarná a toto obarví na bílo)
$image_dst_pos_x = round((115-$width_list)/2); // Umístění vkládánáho obrázku na ose X
$image_dst_pos_y = round((86-$height_list)/2); // Umístění vkládánáho obrázku na ose Y
imagecopy ($new_img_dst,$tmp_list,$image_dst_pos_x,$image_dst_pos_y,0,0,$width_l ist,$height_list); // Samotné spojení plochy a obrázku


Problém je v tom, že když nadefinuji novou plochu přes funkci imagecreatetruecolor (); tak obarvení neproběhne. Proběhne pouze, když plochu nadefinuji přes imagecreate (); výsledný obrázek ale není potom kvalitní co se týče barev.

Díky za tip
Nox
Profil
V manuálu je jakási obskurní poznámka - "Note: The first call to imagecolorallocate() fills the background color in palette-based images - images created using imagecreate().", což by to tvé asi vysvětlovalo, ale je to teda dobrá blbost

Zkus imagecollorallocatealpha

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:

0