Homepage selbermachen 7.852 Themen, 35.619 Beiträge

PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu

T E S T E R / 20 Antworten / Baumansicht 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
J-G-W T E S T E R „PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu“
Optionen

wieso erzeugst Du die Thumbs nicht einmalig, stark kompremiert zu hause und lädst diese mit den Bildern dann hoch? ich ahbe auf meiner HP (siehe Sig) ein Tool zum Download, das dann automatisch aus den Bildern im einen ordner und den Thums im zweiten Ordner eine Präsentation erstellt. Eine solche ist dort auch zu bewundern.
Sonst läufts Du Gefahr, das die Dich auf den in fast allen AGB´s vorhandenen Passus mit der übermäßigen Serverlast aufmerksam machen.
Außerdem ersparst Du Dir mit dem Tool, wenn es Deinen Vorstellungen entspricht, die Arbeit.

bei Antwort benachrichtigen
xafford T E S T E R „PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu“
Optionen

file_exists sollte eigentlich funktionieren, wenn du probleme damit hast, dann teste mal auf gleichheit des typs:
if(file_exists("filepath")===true)
oder mache eine negierende prüfung:
if(!file_exists("filepath"))
wenn alle stricke reißen, dann nutze die funktion @imagecreatefromjpeg() und teste diese auf true oder false.

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
T E S T E R xafford „file_exists sollte eigentlich funktionieren, wenn du probleme damit hast, dann...“
Optionen

danke für deinen tipp, das problem ist dass ich mit file_exists nicht weiss, was genau ich in der funktion alles ausklammern soll:

if(!file_exits($....//pfad auf das thumb//))
{
was hier alles ausgeklammert werden soll ist mir unklar
}

bei Antwort benachrichtigen
xafford T E S T E R „danke für deinen tipp, das problem ist dass ich mit file_exists nicht weiss,...“
Optionen

ausklammern? wie? einfach nur:
if(!file_exists("pfad/zur/datei"))
{
//hier alles, was gemacht werden soll, wenn die datei nicht existiert
}

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
T E S T E R xafford „ausklammern? wie? einfach nur: if !file_exists pfad/zur/datei //hier alles, was...“
Optionen

das problem, ich würde das so machen: (aber das geht nicht ohne ne menge parse errors)

function pic($bild,$id,$ordner) {
$PicPathIn="$ordner/";
$PicPathOut="out/";

if(!file_exists("pfad/zur/datei"))
{
$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 "
";
}

bei Antwort benachrichtigen
Heinz_Malcher T E S T E R „das problem, ich würde das so machen: aber das geht nicht ohne ne menge parse...“
Optionen

Du müsstest die funktion komplett neu schreiben, denn, wenn du was ausklammerst, muss es zu parse errors kommen, denn....

wenn du da was ausklammerst, kommt der link ja nicht mehr an die variablen dran

bei Antwort benachrichtigen
xafford Heinz_Malcher „Xaffords Ausklammertipp wird nicht klappen“
Optionen

und ich sag noch...geh nicht ohne kopfbedeckung in die pralle sonne...

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
T E S T E R xafford „Xaffords Ausklammertipp wird nicht klappen“
Optionen

naja, statt unsachliche kommentare abzugeben wäre es sinnvoller mir mal endlich zu sagen, WIE das geht, denn ich habs tatsächlich nicht hinbekommen.

wenn ihr zwei euch kloppen wollt, dann geht bitte woanders hin aber nicht in den thread hier

bei Antwort benachrichtigen
xafford T E S T E R „Xaffords Ausklammertipp wird nicht klappen“
Optionen

ok tester, ich hab deine löschbegründung für meinen scherz gegenüber heinz in DEINEM thread gelesen. wenn ich also nur ein VIP bin, der zeigen will, wie toll er ist und nie hilft und dabei nur die bretter vollmüllt, dann wird´s für mich wohl zeit nickles zu verlassen.
nicht daß du jetzt was falsches denkst, das ist nicht der grund, nur der letztendliche anlaß...

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
T E S T E R xafford „Xaffords Ausklammertipp wird nicht klappen“
Optionen

Du wirfst mir brocken hin, ich schreibe, dass ich es einfach nicht hinkriege und dann motzt du hier rum...so ist der sachverhalt, was du daraus folgerst, ist deine sache

bei Antwort benachrichtigen
Zaphod T E S T E R „Xaffords Ausklammertipp wird nicht klappen“
Optionen
bei Antwort benachrichtigen
T E S T E R Zaphod „*plonk*“
Optionen

ihr vips zeichnet euch duech eure äusserst kompetenten diskussionen aus, du besonders

bei Antwort benachrichtigen
Maxx Stone T E S T E R „*plonk*“
Optionen

Hallo T e s t e r,

Gratulation! Da ich nicht glaube, dass du dich bei xafford (auch wenn er an dieser Stelle etwas überreagiert hat) entschuldigst: Seit heute bist du in meiner Kategorie "WardaseinmalighabichwasmissverstandenoderXXX" (nicht zu verwechseln mit Troll) aufgenommen.
Darf ich raten? JETZT interessiert dich meine Meinung nicht (mehr?)

Maxx Stone

bei Antwort benachrichtigen
Kaaa... T E S T E R „Xaffords Ausklammertipp wird nicht klappen“
Optionen

Da verdrehst Du wohl den Sachverhalt.
Du hast eine Frage gestellt, X und andere haben geantwortet, X macht einen kleinen Scherz (noch nicht mal auf Deine "Kosten"), Du beschwerst dich, blitzt und motzt rum (in der Blitzbegründung).

Das Posting wird übrigens nicht gelöscht, was Du daraus folgerst ist Deine Sache :-(
Gruß

PS: Immer locker bleiben und die Bälle flach halten, auch wenn das bei der Hitze nicht so einfach ist.

bei Antwort benachrichtigen
T E S T E R Kaaa... „Xaffords Ausklammertipp wird nicht klappen“
Optionen

nochmal für dumme: wenn man keine lösung hat dann braucht man nicht zu posten aber statt dessen gebenhier ne menge leute, besonders vips irgendeinen müll ab. toll ne?

bei Antwort benachrichtigen
Kaaa... T E S T E R „Xaffords Ausklammertipp wird nicht klappen“
Optionen

Fass Dir mal an die eigene Nase.
Oder glaubst Du, daß Dir Dein Gemoser irgendwie weiterhilft--auch im Hinblick auf ev. noch kommende Fragen deinerseits??


Ja,ja...ich stelle jetzt eine Frage und will sofort eine Antwort, die selbst ich verstehen und umsetzen kann...und wehe einer -besonders ein Vip- macht hier einen Scherz, der nichts zur Sache beiträgt..., dann bin ich aber sauer, den Scherze haben hier nichts verloren und dienen eh nur der Statistik- besonders die der Vips, die sich sowieso nur profilieren wollen-...denn ich habe schließlich Anspruch auf Hilfe...odää??

bei Antwort benachrichtigen
T E S T E R Kaaa... „Xaffords Ausklammertipp wird nicht klappen“
Optionen

Ja,ja...ich stelle jetzt eine Frage und will sofort eine Antwort, die selbst ich verstehen und umsetzen kann...und wehe einer -besonders ein Vip- macht hier einen Scherz, der nichts zur Sache beiträgt..., dann bin ich aber sauer, den Scherze haben hier nichts verloren und dienen eh nur der Statistik- besonders die der Vips, die sich sowieso nur profilieren wollen-...denn ich habe schließlich Anspruch auf Hilfe...odää??

---> DU hast es erfasst

bei Antwort benachrichtigen
Maxx Stone xafford „Xaffords Ausklammertipp wird nicht klappen“
Optionen

Hi xafford,

ich wundere mich schon ein paar Tage warum ich nichts mehr von dir lese. Und was finde ich nach stöbern in den Statistiken?

Mensch Jung, mach kein Mist!
(Auch wenn mich früher deine Sig. genervt hat - bevor ich "Grafiken nur von der urspr. Website aktiviert" hatte) :-)

Du bist (ja! Präsens, ich bin optimistisch) hier jemand der nur positiv/aufbauend bzw. konstruktiv/hilfreich postet.
Arrgh! Wenn ich z.B. auf Off-Topic gehe, dann entscheide ich stets aufgrund dessen WER sich an div. Treats beteiligt, ob ich ein posting ansehe. Wenn ich weiterschreibe wird es jetzt zu schleimig ;-)

Etwas Abstand (auch zu Nickles.de) ist emotional immer hilfreich. Auch darauf bezogen dass es Meinungen gibt, wonach mehr als 5 Std./Tag privater PC-Nutzung als Sucht gilt :-)

See you!?!
Maxx Stone

bei Antwort benachrichtigen
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
Apro T E S T E R „PHP Funktion bilder erzeugen, traffic sparen: nur einmal thu“
Optionen

good luck brother...

function pic($bild,$id,$ordner)
{$PicPathIn = "$ordner/";
$PicPathOut = "out/";
$size = getimagesize("$PicPathIn"."$bild");
$breite = $size[0];
$hoehe = $size[1];
$neueBreite = 80;
$neueHoehe = ($hoehe * $neueBreite / $breite);
$Thumbnail = $PicPathOut."$ordner"."TN".$bild;

if (!file_exists($Thumbnail))
{$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");
}

echo "";
}

greetings...
bei Antwort benachrichtigen