Bild laden und verkleinert ausgeben

Gifty43

Erfahrenes Mitglied
Moin zusammen,

Habn kleines Problem. Ich habe hier Bilder (alle in 184x259) welche ich gerne laden und danach auf 108x150 verkleinert wieder ausgeben möchte.

Dabei soll das Bild im /cache/ Ordner verkleinert gespeichert werden. (DATEINAME_sm.jpg

Der Befehl iss ja wie folgt:
PHP:
imagecopyresized($ziel, $quelle, 0,0,0,0,108,150);

Doch jetzt sollte das Script zuerst überprüfen, ob das Bild bereits in diesem Ordner existiert um das Bild nicht jedesmal neu verkleinern zu müssen.

Wie kann ich das am besten realisieren?

THX 4 help.

Greetz
 
Dann solltest du das "cache" Verzeichnis auslesen und prüfen ob der jeweilige Dateiname schon vorhanden ist.
Und dementsprechend drauf reagieren. :)
 
THX für den Input :p

Hab mal folgendes Script gebastelt

PHP:
$quelle = "uploads/'.$row['shot'].'";
$ziel = "cache/'.$row['shot'].'";
 
if (file_exists('cache/'.$row['shot'].''))
{ }
else{
imagecopyresized($ziel,$quelle,0,0,0,0,108,150,184,259);
}

Doch wenn ich den ausführen will kommt nur ne weisse Seite und er macht gar nix mehr. Liegts an meinem können (:-() oder spielt der Server da verrüc^kt?

Danke schonmal für die Hilfe ;)
 
Hallo,
du musst das Bild natürlich entweder direkt ausgeben oder speichern und
dann mit Hilfe des <img> - Tags wieder einbinden. Wenn es z.B. ein *.jpg
Bild ist, dann kannst du das mit der [phpf]imagejpeg[/phpf] Funktion realisieren.

mfg
forsterm
 
forsterm hat gesagt.:
Hallo,
du musst das Bild natürlich entweder direkt ausgeben oder speichern und
dann mit Hilfe des <img> - Tags wieder einbinden. Wenn es z.B. ein *.jpg
Bild ist, dann kannst du das mit der [phpf]imagejpeg[/phpf] Funktion realisieren.

mfg
forsterm

Das iss klar, hab ich auch weiter unten im Code drin.

Aber die Seite wird einfach weiss wenn ich sie öffne wenn der Code drin steht
 
Kein Problem:

Hab ihn noch n bissl umgestellt^^

PHP:
<?
$row_q = mysql_query("SELECT * FROM games");
while($row = mysql_fetch_array($row_q)) {
 
if (file_exists('../cache/$row['shot']'))
{ }
else{
imagecopyresized(../uploads/$row['shot'],../cache/$row['shot'],0,0,0,0,108,150,184,259);
}
 
echo'
<img src="../cache/'.$row["shot"].'" border="0">
';
 
}
?>
 
Hallo,
so sollte es funktionieren:
PHP:
<?php
    header("Content-type: image/jpeg");
    $row_q = mysql_query('SELECT * FROM games'); 
    while($row = mysql_fetch_array($row_q)){
        if (!file_exists('../cache/'.$row['shot'])){
            $orginal = imagecreatefromjpeg('../uploads/'.$row['shot']);
            $thumb = imagecreatetruecolor(184, 259);
            imagecopyresized($thumb, $orginal, 0, 0, 0, 0, 108, 150, 184, 259);
            imagejpeg($thumb, '../cache/'.$row['shot']);
            imagedestroy($thumb);
        }
        echo'<img src="../cache/'.$row["shot"].'" border="0">';
    }
?>

Hab es nicht getestet.

mfg
forsterm
 
Hallo,
ok, dann teste mal das hier:
PHP:
<?php 
    header("Content-type: image/jpeg"); 
    $row_q = mysql_query('SELECT * FROM games');  
    while($row = mysql_fetch_array($row_q)){ 
        if (!file_exists('../cache/'.$row['shot'])){ 
            $orginal = imagecreatefromjpeg('../uploads/'.$row['shot']); 
            $thumb = imagecreatetruecolor(108, 150); 
            imagecopyresized($thumb, $orginal, 0, 0, 0, 0, 108, 150, 184, 259); 
            imagejpeg($thumb, '../cache/'.$row['shot']); 
            imagedestroy($thumb); 
        } 
        echo'<img src="../cache/'.$row["shot"].'" border="0">'; 
    } 
?>

mfg
forsterm
 
Zurück