Homepage selbermachen 7.851 Themen, 35.615 Beiträge

PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu

T E S T E R / 20 Antworten / Flachansicht Nickles



function pic($bild,$id,$ordner) {
$PicPathIn="$ordner/";
$PicPathOut="out/";
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=53;
$neueHoehe=$hoehe*$neueBreite/$breite;
$size[2]==2;
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$ordner"."TN"."$bild");
$Thumbnail=$PicPathOut."$ordner"."TN".$bild;

echo "<a href=\\"photo.php?id=$id&option=pic_show&picid=$bild&height=$hoehe&width=$breite\\">
<IMG SRC=\\"$Thumbnail\\" WIDTH=\\"$neueBreite\\" HEIGHT=\\"$neueHoehe\\"></a> ";
}


ich hab hier eine funktion, mittels welcher ich bilder erzeugen lasse, die aus einer db gelesen werden, bzw. die
pfade zu den bildern werden aus einer db gelesen. ok....ich befürchte, dass, wenn jedesmal von neuem ein thumbnail von
circa 2kb erzeugt wird, irgendwann mein provider meckert, daher will ich die thumbnails genau einmal erstellenl assen,
dann aber nur noch auf die bereits erstellten zurückgreifen, ich dachte das geht mit file_exists also:
if(file_exists...... aber das geht nicht. weiss jemand einen tipp wie ich prüfen kann, ob die datei schon vorhanden ist
und dann in diesem falle die datei nicht nochmal erzeugt wird, oder wird die datei garnicht nochmal gelöscht und von php
nochmal erzeugt, wenn ein 2. und 3. usw. user auf die bilder zugreifen?
bei Antwort benachrichtigen
*plonk* Zaphod
*plonk* T E S T E R
Heinz_Malcher T E S T E R „PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu“
Optionen

Hallo um die Sache mal zu lösen: Es gibts sicher elegantere Lösungen aber ich geben offen und ehrlich zu ich kenne keine da ich mich mit der GD nicht sooo gut auskenne:

Problem war nur im IE5, der bei mir mit leeren heigth und width Angaben keine Bilder anzeigt, dennoch alles korrekt verabeitet, somit hab ich die höhen und weitenangaben rausgenommen, das geht, auch wenns nicht sonderlich html konform ist. Somit wird geprüft ober das bild das ist oder nicht, geht demnach super!



$Thumbnail=$PicPathOut."$ordner"."TN".$bild;

if(!(file_exists($Thumbnail)))
{
$size=getimagesize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=53;
$neueHoehe=$hoehe*$neueBreite/$breite;
$size[2]==2;
$altesBild=ImageCreateFromJPEG("$PicPathIn"."$bild");
$neuesBild=imageCreate($neueBreite,$neueHoehe);
imageCopyResized($neuesBild,$altesBild,0,0,0,0,$neueBreite,$neueHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$PicPathOut"."$ordner"."TN"."$bild");
}

bei Antwort benachrichtigen