-
Problema getimagesite
Salut.Mi-am facut un site de jocuri,iar la partea administrativa am incercat sa fac putin munca mai usoara.Cand adaug jocul imi extrage automat width-ul si height-ul jocului.Am adaugat cateva conditii,in caz ca width-ul si height-ul sunt mai mare de X ori si merge perfect inafara faptului,ca , in caz ca este mai mare,maximul width imi da doar de 500px.
Acesta este codul care-l folosesc.
Cod PHP:
$maxfilewidth = "800";
$maxfileheight = "1000";
$autoresize = "1";
$gamewidth = $_POST[width];
$gameheight = $_POST[height];
$size = getimagesize($siteurl."/swfjoc/".$fileName2);
$gamewidth = $size[0];
$gameheight = $size[1];
if ($autoresize == '1') {
if ($gamewidth > $maxfilewidth) {
$change = ($gamewidth / $maxfilewidth);
$gamewidth = $maxfilewidth;
$gameheight = ($gameheight / $change);
}
if ($gameheight > $maxfileheight) {
$change = ($gameheight / $maxfileheight);
$gameheight = $maxfileheight;
$gamewidth = ($gamewidth / $change);
}}
Deci,dupa cum observat maxfilewidth este de 800 ,iar daca pun un joc nou cu width de 1200,ii da autoresize pana la 500px doar.Inteleg faptul ca autoresize-ul miceste width-ul astfel incat sa se potriveasca cu height-ul,adica sa aiba o calitate jocul,dar asa se intampla la toate jocurile.Imi da doar 500px si trebuie sa modific eu manual dupa.Imi puteti spune care este problema? Ce am gresit,ce trebuie facut?Multumesc si o seara placuta.
-
E posibil sa fie ceva legat de $gamewidth - vezi ce valoare preia.
Eu as face in felul urmator:
Cod PHP:
$maxfilewidth = "800";
$maxfileheight = "1000";
$defaultgamewidth = $_POST[width];
$defaultgameheight = $_POST[height];
$size = getimagesize($siteurl."/swfjoc/".$fileName2);
$gamewidth = $size[0];
$gameheight = $size[1];
$autoresize = "1";
if ($autoresize == '1') {
if ($gamewidth >= $gameheight)
{
$finalwidth = min(min($defaultgamewidth, $gamewidth),$maxfilewidth);
$finalheight = round(($gameheight * $finalwidth) / $gamewidth);
} else {
$finalheight = min(min($defaultgameheight, $gameheight),$maxfileheight);
$finalwidth = round(($gamewidth * $finalheight) / $gameheight);
}
}
L-am facut in graba - sper sa fi fie corect. Ideea ar fi ca in functie de care dintre dimensiuni este mai mare - o recalculezi pe cealalta.
Ps. - acum am vazut ca in scriptul tau intai faci
Cod PHP:
$gamewidth = $_POST[width];
$gameheight = $_POST[height];
si dupa aia
Cod PHP:
$gamewidth = $size[0];
$gameheight = $size[1];
in felul asta degeaba iei primele doua valori :|
-
Codul facut de tine,tot asa imi ia size-urile...am observat si eu ce mi-ai spus,dar eu am facut 2 field-uri in form cu width si height,care nu le completez cand adaug jocul,asta inseamna ca widht si height nu are,deci dupa vine problema lui getimagesize nu? care trebuie sa ia el marimile,dar le ia cam prost din cate vad.Am marit limitele la 1200 si 1800 ,dar tot maxim 500 imi da.O sa mai incerc sa vad care e problema.Ms totusi de ajutor:">
-
Foloseste echo pentru toate variabilele si vezi ce valori sunt intoarse.
Asa iti poti da seama unde e problema.