Autor | Zpráva | ||
---|---|---|---|
Fireous Profil |
#1 · Zasláno: 6. 4. 2009, 15:59:03
Ahoj,
mám takýto problém.Vytváram script,ktorý vytvorí obrázok do podpisu do fór.Problém je v tom,že mám obrázok,ktorý má biele pozadie,toto pozadie je nastavené cez photoshop ako priehľadné.Najprv som zistil že PHP to ingnoruje,ale keď som to skúšal napraviť funkciamy ako sú imagetransparent,imacollorallocateaplha a podobne,tak to nefungovalo.Tu je súčasný nefungujúci kód : <?php header("Content-type: image/png"); $podpis = imagecreate(400, 64) or die("Nejde"); imagecolorallocate($podpis, 0x00, 0x00, 0x00); imagesavealpha($podpis, true); $font = imageloadfont("MORPHEUS.TTF"); $rasa = imagecreatefromgif("0-1-1.gif"); $class = imagecreatefrompng("classes/rogue.png"); imagesavealpha($class, true); $farbaPisma = imagecolorallocate($podpis, 0xff, 0xd7, 0x00); $farbaCisla = imagecolorallocate($podpis, 0x00, 0x00, 0x00); $biela = imagecolorallocatealpha($podpis, 0xff, 0xff, 0xff,127); imagecolortransparent($class,$biela); imagecopy($podpis,$rasa,0,0,0,0,64,64); imagecopymerge($podpis,$class,0,44,0,0,20,20,100); ?> časť nepodstatného kódu nie je uvedená Jedná sa o obrázok s bielim pozadím naľavo v rohu : http://img18.imageshack.us/img18/5433/prototyp.gif Kedže v práci s obrázkami ešte niesom celkom doma,osobne si myslím že problém je v tom,že neviem ako správne použiť tie funkcie,tak by som poprosil aby ste mi aj s odporúčaním,aké funkcie mám použiť,vysvetlili aj ako,v akom poradím a podobne.Vopred ďakujem za pomoc |
||
AM_ Profil |
#2 · Zasláno: 6. 4. 2009, 18:45:50
Jsi si jistý, že v daných bodech je skutečně požadovaná barva (ff ff ff)? není to třeba ff ff fe? Pokud je tam průhlednost, kterou PHP ignoruje (nevím jistě, jen opakuji, co říkáš), zřejmě bys tam místo ní měl dát onu bílou.Kdoví, jestli photoshop ukládá průhlednou jako bílou s alfa kanálem ff, nebo ne?
|
||
Fireous Profil |
#3 · Zasláno: 6. 4. 2009, 18:53:20
Teda podľa teba je problém tam,že stačí zistiť akou farbou definuje PS priehľadnosť definovať tú farbu v imagecolorallocatealpha?Inak by mal byť script v poriadku?
|
||
AM_ Profil |
#4 · Zasláno: 6. 4. 2009, 19:00:02
Mohlo by, ale může to být prakticky jakákoliv barva s R:xx G:xx B:xx A:ff. Já bych na tvém místě tu průhlednou v obrázku nahradil bílou - budeš vědět, na čem jseš. Průhledné PNG jsou hezká věc, ale podpora v programech je mizerná.
|
||
Fireous Profil |
#5 · Zasláno: 6. 4. 2009, 19:16:31
áno,tiež mi to napadlo a tak som to hneď vyskúšal,ale bohužiaľ to nepomohlo
podľa mňa tam aj predtým bola biela,lebo asi nahradila tu priehľadnosť teda budˇ to mám celé zle,alebo mám zle poradie funkcií,alebo neviem čo :D |
||
AM_ Profil |
#6 · Zasláno: 6. 4. 2009, 19:19:20
zkus:
$biela = imagecolorallocatealpha($class, 0xff, 0xff, 0xff,127); |
||
Fireous Profil |
#7 · Zasláno: 6. 4. 2009, 19:22:54
bohužiaľ...mám pocit že riešenie je jednoduché,ale niečo mi tam stále uniká
|
||
Fireous Profil |
#8 · Zasláno: 6. 4. 2009, 19:24:10
našiel som niečo takéto : http://www.bitrepository.com/image-transparency-with-gd.html len neviem či mi to pomôže vyriešiť problém
|
||
Časová prodleva: 15 let
|
0