URL: https://www.overclockers.at/coding-stuff/php_help_gesucht_200031/page_3 - zur Vollversion wechseln!
Zitat von LTDDachte das wäre der Funktionsaufruf *g*
$image_name = "image.php?image_name=$image_name&style=$style";
Wie macht mans richtig?
Genau.Zitat von kleinerChemikerwenn du die bilder nicht anzeigen willst, sondern nur erschaffen, dann kannst du das in einem file machen, am besten in einer schleife. nur wenn du das bild anzeigen willst mittels php, dann kannst du als einzigen output das bild ausgeben.
Zitat von LTDLösche ich dann den Part von Hader bis zum fileCount++ aus der Funktion, erstellt er mir keine Bilder mehr.
Diesen Teil darfst du dann nicht löschen, weil hier das File angelegt wird. Wenn das Script aber jetzt nur Thumbs erstellen und nicht anzeigen soll, macht das IF-Konstrukt nicht mehr viel SinnCode: PHPif($style=="show" || $style=="thumb") { if(!file_exists($dest_file)) imagejpeg($image_small, $dest_file, 100); }
reichen.Code: PHPif(!file_exists($dest_file)) imagejpeg($image_small, $dest_file, 100);
Sorry, Doppelpost.
Ok vielen Dank... irgendwie drücke ich mich wohl falsch aus:
Meine Schleife funktioniert nicht - ich weiß, dass ich es in einer Schleife lösen kann, aber WIE?!
Wie ich eine Funktion aufrufen kann ist mir klar, aber wie rufe ich diese Funktion in einer anderen Seite auf? -> das was Jives vorschlägt meint auch der Schreiber des Codes oben, aber ich verstehe einfach nicht wie ich auf Seite A abfrage welche Files im Ordner sind und dann Seite B öffne und die Infos von Seite A rüberschiebe... =)
Google hilft mir da auch nicht weiter, vermutlich weil ich nach dem falschen suche ...
Das Script legt mir brav einen blöden File ab, schmeisse ich es in die While-Schleife, kickt er mich mit irgend einer blöden Fehlermeldung, die irgendwas mit der Zeile 72 zu tun hat (da wo Header ... steht).
Herrlich an einander vorbei geschrieben
Du hast bei deinem ersten Versuch (http://www.overclockers.at/include_...758#post2678758) fast alles richtig gemacht, nur leider nachher zu viel gelöscht - alles ab dem header() inkl. gehört weg, nur eben die paar Zeilen die ich oben gepostet habe nicht.
Edit:
Um Daten von Script A nach Script B zu bekommen, gibt es mehrere Möglichkeiten, z.B. GET, POST, Sessions, Datenbanken, (temporäre) Dateien, usw.
Aber in deinem Anwendungsfall reicht glaub ich mein erster Vorschlag mit dem GET.
Du bist glaube ich auch auf dem richtigen Weg Wenn das Script mal brav Thumbs generiert, kann man ja über die nächsten Schritte mit Anzeigen und Cachen nachdenken.
Edit 2:
Schnell mal Code drangehängt:
Code: PHP$filePath=$PATH.'imagesdb/full/'; # Specify the path you want to look in. $dir = opendir($filePath); # Open the path while ($file = readdir($dir)) { if (eregi(".jpg",$file) && !eregi("._",$file)) { $image_name = "$file"; $style = "thumb"; $file_compare = "imagesdb/$style/$image_name"; if(!file_exists($file_compare)) { $dest_file = "imagesdb/$style/$image_name"; $image_file = "imagesdb/full/$image_name"; $size = getimagesize($image_file); switch($style) { case "show": $max_size = 800; break; case "thumb": $max_size = 125; } if($size[0] > $size[1]) { $divisor = $size[0] / $max_size; } else { $divisor = $size[1] / $max_size; } $new_width = $size[0] / $divisor; $new_height = $size[1] / $divisor; settype($new_width, 'integer'); settype($new_height, 'integer'); $image_big = imagecreatefromjpeg($image_file); $image_small = imagecreatetruecolor($new_width, $new_height); imagecopyresampled($image_small, $image_big, 0,0, 0,0, $new_width,$new_height, $size[0],$size[1]); imagedestroy($image_big); if(!file_exists($dest_file)) imagejpeg($image_small, $dest_file, 100); imagedestroy($image_small); } } }
Zitat von jivesHerrlich an einander vorbei geschrieben
Du hast bei deinem ersten Versuch (http://www.overclockers.at/include_...758#post2678758) fast alles richtig gemacht, nur leider nachher zu viel gelöscht - alles ab dem header() inkl. gehört weg, nur eben die paar Zeilen die ich oben gepostet habe nicht.
Edit:
Um Daten von Script A nach Script B zu bekommen, gibt es mehrere Möglichkeiten, z.B. GET, POST, Sessions, Datenbanken, (temporäre) Dateien, usw.
Aber in deinem Anwendungsfall reicht glaub ich mein erster Vorschlag mit dem GET.
Du bist glaube ich auch auf dem richtigen WegWenn das Script mal brav Thumbs generiert, kann man ja über die nächsten Schritte mit Anzeigen und Cachen nachdenken.
Code: PHP<?PHP //function num_files($directory='.') { // return count(glob($directory."/*.*")); //} //this will find the number of files (only files) in "/horse/cat/" //$file_count = num_files("imagesdb/full/"); $string=""; $fileCount=0; $filePath=$PATH.'imagesdb/full/'; # Specify the path you want to look in. $dir = opendir($filePath); # Open the path while ($file = readdir($dir)) { if (eregi(".jpg",$file) && !eregi("._",$file) ) {# Look at only files with a .jpg extension $image_name = "$file"; } } $style = "thumb"; // I've taken the foldernames. It's easier. For the //thumbnails replace "show" with "thumb". $file_compare = "imagesdb/$style/$image_name"; if(!file_exists($file_compare)){ switch($style) { case "show": $max_size = 800; break; case "thumb": $max_size = 125; } $dest_file = "imagesdb/$style/$image_name"; // set output file $image_file = "imagesdb/full/$image_name"; // set source file $size = getimagesize($image_file); // get original size if($size[0] > $size[1]) { $divisor = $size[0] / $max_size; } else { $divisor = $size[1] / $max_size; } // to get allways pictures of the same size, which ist // mostly wanted in imageviewers, look what ist larger: // width or height $new_width = $size[0] / $divisor; $new_height = $size[1] / $divisor; // set new sizes settype($new_width, 'integer'); settype($new_height, 'integer'); // sizes should be integers $image_big = imagecreatefromjpeg($image_file); // load original image $image_small = imagecreatetruecolor($new_width, $new_height); // create new image imagecopyresampled($image_small, $image_big, 0,0, 0,0, $new_width,$new_height, $size[0],$size[1]); // imageresampled whill result in a much higher quality // than imageresized imagedestroy($image_big); // the original data are no longer used if(!file_exists($dest_file)) imagejpeg($image_small, $dest_file, 100); $fileCount++; } else { echo "Nothing to convert!"; } ?>
Hab oben in meinem Post noch Code drangehängt. Der sollte funktionieren (habs nicht getestet, ist aber eine schlankere Variante von deinem Script).
Bei deinem letzten Post hast du einfach nur vergessen, das Ganze noch in die while-Schleife zu bugsieren
WAAAAHHHHH ES GEHT! Ich Depp hatte nur die Funktion nicht in der Schleife!
Boah sorry *g* so dumm muss man erstmal sein =)
Willst du die Thumbs jetzt auch gleich von dem Script anzeigen lassen?
Zitat von jives
Willst du die Thumbs jetzt auch gleich von dem Script anzeigen lassen?
Edit: hat sich erledigt! Scheinbar nimmt er das erste imagejpeg als Rückgabewert und da hatte ich das falsche drinnen stehen...
Langsam wird das ganze was: http://markusklug.macbay.de/gfx.php
Jetzt noch rausfinden wie ich verschiedene Seiten mache und den ganzen Spaß so, dass ich nicht bei jeder Seite das Convert-Script ändern muss - perfekt!
Schaut ja schon sehr gut aus!
Meinst du mit Seiten die verschiedenen Kategorien? Da könntest du einfach immer auf gallery.php verlinken und z.B. eine Kategorie-ID per GET mitgeben.
Je nachdem werden dann die Pfade im Script zu deinen Unterverzeichnissen gesetzt, z.B. mit einem switch().
Wenn du die einzelnen Kategorien noch mit Seiten unterteilen willst, dann könntest du folgendes machen:
Den Inhalt des Verzeichnisses in ein Array (z.B. $images[]) einlesen und je nach Anzahl der Files entsprechende Links zu den Seiten ausgeben. Die zeigen wieder auf gallery.php und geben einen Offset per GET mit - also z.B. gallery.php?offset=20 oder gallery.php?catid=3&offset=20.
Dein Script läuft dann das Array $images[] per for-Schleife AB dem Offset n-mal durch und macht sonst genau das gleiche wie bisher in der while-Schleife
Dann fehlt die nur noch die LightboxCode: PHPfor ($i = $_GET['offset']; $i < n; $i++) { ... $images[$i] ... }
aja, bei about me hast dein foto als "studivz" benannt, könntest ev. noch ändern
wollte nur sagen: schaut super aus!
ad verschiedene Seiten: meinst du, dass man zB 20 Fotos / seite hat & blättern kann? Das machst du (sofern du die Dateinamen in einer mysqlTabelle hast) mit der Abfrage beim Auslesen
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025