Hallo Leute,
ich habe hier ein Script, (Gastgeberverzeichnis) bei dem sich jeder Vermieter einloggen kann, und dort seine Bilder hochladen kann (halt von seiner ferienwohnung).
Nun habe ich aber das Problem, das ich zwar im Adminbereich ein festes Pixel verhältnis angeben kann, was die höhe und auch die Breite betrifft, zb 117px Breite und 70 px hoch, bei Querformatbildern ist das auch schön, wenn jetzt aber jemand ein Hochformatbild lädt, dann wird das bild gestreckt.
Und jetzt weis ich nicht wie ich die berechnung der Bilder machen kann, damit die höhe immer zb. 70px bleibt, und nur die breite variabel ist.
Hier erstmal das Script:
Kann mir denn dazu jemand einen Tipp geben? Ich weis einfach nicht weiter...?!
ich habe hier ein Script, (Gastgeberverzeichnis) bei dem sich jeder Vermieter einloggen kann, und dort seine Bilder hochladen kann (halt von seiner ferienwohnung).
Nun habe ich aber das Problem, das ich zwar im Adminbereich ein festes Pixel verhältnis angeben kann, was die höhe und auch die Breite betrifft, zb 117px Breite und 70 px hoch, bei Querformatbildern ist das auch schön, wenn jetzt aber jemand ein Hochformatbild lädt, dann wird das bild gestreckt.
Und jetzt weis ich nicht wie ich die berechnung der Bilder machen kann, damit die höhe immer zb. 70px bleibt, und nur die breite variabel ist.
Hier erstmal das Script:
Code:
//-------------class img----------------- function addimg($id_site) { $db =& JFactory::getDBO(); $query = "SELECT wimg, vwimg, vhimg, max_img FROM #__lbresa_config"; $db->setQuery( $query ); $confimg = $db->loadObject(); $datepic = date('Ymdhis'); $name = $id_site."_".$datepic; $wimg= $confimg->wimg; $vwimg= $confimg->vwimg; $vhimg= $confimg->vhimg; $max_img= $confimg->max_img; $dir = 'components/com_joomloc/images'; $dir_temp = 'components/com_joomloc/images/temp'; $ratio = $wimg; if (isset($_FILES['file'])) { if ($_FILES['file']['error'] == UPLOAD_ERR_OK) { $tableau = @getimagesize($_FILES['file']['tmp_name']); if ($tableau == FALSE) { unlink($_FILES['file']['tmp_name']); $erreur = "<h1>".JText::_( 'Votre fichier n est pas une image.' )."</h1>"; echo "$erreur"; } else { if ($tableau[2] == 1 || $tableau[2] == 2 || $tableau[2] == 3) { $file_upload = 'site_'.$id_site."_img_".$name.".jpg"; copy ($_FILES['file']['tmp_name'], $dir_temp.'/'.$file_upload); $query = "INSERT INTO #__lbresa_img(id, id_site, img) values('', '$id_site', '$file_upload')"; $db->setQuery( $query ); $db->query(); // si notre image est de type jpeg -------------------------------------------------------------- if ($tableau[2] == 2) { // on crée une image à partir de notre grande image à l'aide de la librairie GD $src = imagecreatefromjpeg($dir_temp.'/'.$file_upload); if($tableau[0]<=$ratio and $tableau[1]<=$ratio) { copy ($_FILES['file']['tmp_name'], $dir.'/'.$file_upload); $src = imagecreatefromjpeg($dir.'/'.$file_upload); } else { // on teste si notre image est de type paysage ou portrait if ($tableau[0] > $tableau[1]) { $im = imagecreatetruecolor(round(($ratio/$tableau[1])*$tableau[0]), $ratio); imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$tableau[1])*$tableau[0]), $ratio, $tableau[0], $tableau[1]); } else { $im = imagecreatetruecolor($ratio, round(($ratio/$tableau[0])*$tableau[1])); imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($tableau[1]*($ratio/$tableau[0])), $tableau[0], $tableau[1]); } // on copie notre fichier généré dans le répertoire des miniatures imagejpeg ($im, $dir.'/'.$file_upload); } $imv = imagecreatetruecolor($vwimg, $vhimg); imagecopyresampled($imv, $src, 0, 0, 0, 0, $vwimg, $vhimg, $tableau[0], $tableau[1]); imagejpeg ($imv, $dir.'/vignettes/'.$file_upload); unlink($dir_temp.'/'.$file_upload); } //----------
Kommentar