daemonb
25-12-2002, 22:50
Also folgendes Problem:
Ich habe heute den ganzen Tag schon drangesessen, aber ich denke meine PHP kenntnisse sind einfach nicht tief genug.
Ich habe vor sowas wie eine diashow zu machen. Für das resizen der grafiken habe ich schon ein skript gefunden:
<?php
header("Content-type: image/jpeg");
$file= "test.jpg";
$file2= "test_resized.jpg";
// $path= "image";
if(file_exists("$file")) {
//Originalbild einlesen
$h_img= imagecreatefromjpeg("$file");
$width= imagesx($h_img);
$height= imagesy($h_img);
// Thumbnail im Speicher erzeugen
$thb_x= 400;
$thb_y= 200;
$h_thb= imagecreate($thb_x, $thb_y);
// Verkleinern
imagecopyresized(
$h_thb,
$h_img,
0,
0,
0,
0,
$thb_x,
$thb_y,
$width,
$height
);
// In File speichern
imagejpeg($h_thb, "$file2");
// Aufräumen
//imagedestroy($h_thb);
//imagedestroy($h_img);
}
// Ausgabe
readfile("$file2");
?>
Das funktioniert auch soweit. Nun jetzt das eigentlich problem:
Es soll eine art diashow werden, bei der man immer auf weiter klickt, um zum nächsten bild zu gelangen, am ende soll er wieder an den anfang springen.
Die Bilder liegen in einem Verzeichnis vor. Es sind zum beispiel 24 bilder, diese bilder soll er einmal verkleinern, dann erst wieder wenn sich an den zugrundeliegenden bildern etwas geänder hat. Achja als wäre das noch nicht genug, wenn man die bilder anklickt soll das ursprüngliche bild, also das große angezeigt werden.
Mit hilfe von php.net bin ich noch dazu gekommen, damit habe ich auch experimentiert:
<?
function CheckExt($filename, $ext) {
$passed = FALSE;
$testExt = "\.".$ext."$";
if (eregi($testExt, $filename)) {
$passed = TRUE;
}
return $passed;
}
//Define an array of common extensions.
$exts = array("gif","jpg$|\\.jpeg","png","bmp");
$directory = ".";
echo "<b>Images in this folder:</b>";
$dir = opendir("$directory");
$files = readdir($dir);
while (false !== ($files = readdir($dir))) {
foreach ($exts as $value) {
if (CheckExt($files, $value)) {
//echo "<a href=\"$directory/$files\">$files</a>\n";
$count++; //Keep track of the total number of files.
echo $files,"\n";
echo "<img src=\"$files\">";
break; //No need to keep looping if we've got a match.
}
}
}
echo $count." image(s) found in this directory.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Refresh</a>\n";
//Be a good script and clean up after yourself...
closedir($dir);
?>
Ich hatte das schon soweit, dass es alle resized hat, dass allerding jedesmal, also ich komm echt net weiter wenn einer ne lösung hat, wäre ich dankbar.
bis denne
DaemonB
Ich habe heute den ganzen Tag schon drangesessen, aber ich denke meine PHP kenntnisse sind einfach nicht tief genug.
Ich habe vor sowas wie eine diashow zu machen. Für das resizen der grafiken habe ich schon ein skript gefunden:
<?php
header("Content-type: image/jpeg");
$file= "test.jpg";
$file2= "test_resized.jpg";
// $path= "image";
if(file_exists("$file")) {
//Originalbild einlesen
$h_img= imagecreatefromjpeg("$file");
$width= imagesx($h_img);
$height= imagesy($h_img);
// Thumbnail im Speicher erzeugen
$thb_x= 400;
$thb_y= 200;
$h_thb= imagecreate($thb_x, $thb_y);
// Verkleinern
imagecopyresized(
$h_thb,
$h_img,
0,
0,
0,
0,
$thb_x,
$thb_y,
$width,
$height
);
// In File speichern
imagejpeg($h_thb, "$file2");
// Aufräumen
//imagedestroy($h_thb);
//imagedestroy($h_img);
}
// Ausgabe
readfile("$file2");
?>
Das funktioniert auch soweit. Nun jetzt das eigentlich problem:
Es soll eine art diashow werden, bei der man immer auf weiter klickt, um zum nächsten bild zu gelangen, am ende soll er wieder an den anfang springen.
Die Bilder liegen in einem Verzeichnis vor. Es sind zum beispiel 24 bilder, diese bilder soll er einmal verkleinern, dann erst wieder wenn sich an den zugrundeliegenden bildern etwas geänder hat. Achja als wäre das noch nicht genug, wenn man die bilder anklickt soll das ursprüngliche bild, also das große angezeigt werden.
Mit hilfe von php.net bin ich noch dazu gekommen, damit habe ich auch experimentiert:
<?
function CheckExt($filename, $ext) {
$passed = FALSE;
$testExt = "\.".$ext."$";
if (eregi($testExt, $filename)) {
$passed = TRUE;
}
return $passed;
}
//Define an array of common extensions.
$exts = array("gif","jpg$|\\.jpeg","png","bmp");
$directory = ".";
echo "<b>Images in this folder:</b>";
$dir = opendir("$directory");
$files = readdir($dir);
while (false !== ($files = readdir($dir))) {
foreach ($exts as $value) {
if (CheckExt($files, $value)) {
//echo "<a href=\"$directory/$files\">$files</a>\n";
$count++; //Keep track of the total number of files.
echo $files,"\n";
echo "<img src=\"$files\">";
break; //No need to keep looping if we've got a match.
}
}
}
echo $count." image(s) found in this directory.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Refresh</a>\n";
//Be a good script and clean up after yourself...
closedir($dir);
?>
Ich hatte das schon soweit, dass es alle resized hat, dass allerding jedesmal, also ich komm echt net weiter wenn einer ne lösung hat, wäre ich dankbar.
bis denne
DaemonB