Bilder Upload

schiese

Erfahrenes Mitglied
Hallo,
ich habe einen Code zum Hochladen von Bildern. Der Code verkleinert bei Bedarf das Bild und benennt es um. Jetzt hätte ich gerne noch ein zweites, noch kleineres Bild, als Vorschau und weiß überhaupt nicht, wie ich da vorgehen soll.
Kann mir vielleicht jemand einen Tipp geben?

Mein bisheriger Code:
PHP:
if (isset($_POST['vergleich'])) {

if (empty($_FILES['bild']['name'])) {
echo "Bitte wählen Sie ein Bild aus!";
} else {

$tempname = $_FILES['bild']['tmp_name']; 
$name = $_FILES['bild']['name'];
$uploaddir = "bilder/";

$type = $_FILES['bild']['type']; 
$size = $_FILES['bild']['size'];

if ($_FILES['bild']['size'] > 20000000) {
echo "Die maximale Dateigroesse betraget xxxxx KB!";
} else {


if( $type != "image/pjpeg" && $type != "image/jpeg" && $type != "image/jpg" ) { 
echo "Nur JPEG-Formate auswählen";
} else {

if (!getimagesize($_FILES['bild']['tmp_name']) ) {
echo "Kein Bild!";
} else {

// In Verzeichnis verschieben
if (!move_uploaded_file($tempname, $uploaddir.$name )) {
echo "Es gab einen Fehler mit dem Upload. Versuchen Sie es bitte erneut.";
} else {

// Bild umbenennen
$arrayname = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");

for($a=1;$a<=10;$a++) {
$buchstabe = $arrayname[rand(0,count($arrayname)-1)];
$textcode .= $buchstabe;
}

$timestamp = time();
$zufallszahl = rand(9,9867);
$zufallszahl2 = rand(0,785757);


$neuername = $uploaddir.$zufallszahl.md5($textcode).$timestamp.$zufallszahl2.".jpg";

if (!rename($uploaddir.$name, $neuername)) {
echo "Es gab ein Fehler beim Umbenennen des Bildes.";
} else {

// Bilder verkleinern


$size = getimagesize($neuername);  
$width = $size[0];  
$height = $size[1];  
$width_tn = 250;  
$height_tn = intval($height * $width_tn / $width); 
}

$_POST['bild'] = "";

if($size[0] > 300) {

$picture = ImageCreateFromJPEG($neuername);  
$picture_tn = ImageCreateTrueColor($width_tn,$height_tn);  
ImageCopyResampled($picture_tn,$picture,0,0,0,0,$width_tn,$height_tn,$width,$height);
ImageJPEG($picture_tn, $neuername,75);
imagedestroy($picture);
imagedestroy($picture_tn);

}
}
}
}
}
}
}

schiese
 
Hi,

wie Du ein Bild verkleinern kannst, steckt doch in dem Script schon drin. Wo ist das Problem, genau das Gleiche noch einmal mit einer noch kleineren Breite zu machen?

LG
 
Willst du diese beiden Vorschaubilder gleichzeitig angezeigt haben? Oder anhand welchem Kriterium soll entweder das eine oder das andere gezeigt werden?
 
Hi,
danke für eure Antworten. Wie ich das Bild verkleinern kann weiß ich. Nur kriege ich es nicht hin, dass ich das Bild noch einmal verkleiner und dann unter einem anderen Namen abspeicher.
Ich habe schon mehrer Sachen probiert, nur funktionierte das Skript dann gar nicht mehr...
 
Hi,

dann zeige doch mal, was Du versucht hast. Füge aber bitte entsprechende Einrückungen ein, sonst kann ja kein Mensch die Struktur erkennen.

LG
 
Hi,
habe es jetzt gelöst. Habe das Bild noch einmal kopiert und anschließend verkleinert. Wahrscheinlich die schlechteste Lösung, aber für mich reicht sie.

PHP:
$tn = $uploaddir."tn_".$zufallszahl.md5($textcode).$timestamp.$zufallszahl2.".jpg";
copy($neuername,$tn);
	
$size2 = getimagesize($tn);  
$width2 = $size2[0];  
$height2 = $size2[1];  
$height_tn2 = 120;  
$width_tn2 = intval($width2 * $height_tn2 / $height2);

$picture2 = ImageCreateFromJPEG($tn);  
$picture_tn2 = ImageCreateTrueColor($width_tn2,$height_tn2);  
ImageCopyResampled($picture_tn2,$picture2,0,0,0,0,$width_tn2,$height_tn2,$width2,$height2);
ImageJPEG($picture_tn2, $tn,100);
imagedestroy($picture2);
imagedestroy($picture_tn2);

schiese
 
Zurück