ramon
31-07-2005, 13:43
Hallo,
ich habe mir einen kleinen scrip aus dem Internet geholt, und ihn an meine Vorstellungen angepasst.
Der Script soll Thumbnails erstellen und abspeichern.
Tut er auch, mit der Einschränkung, wenn ich an ein Bild komme, das größer als ca. 500kB ist, bricht er einfach ohne Fehlermeldung ab.
Hat jemand schon mal etwas von einer Größenbeschränkung gehört, oder ist es ein anderer Fehler, der sich nur an der gleichen Stelle ergibt ?
Anbei meine Datei.
<?php
$PicPathIn=$_POST['PicPathIn'];
$PicPathOut=$_POST['PicPathOut'];
$neueBreite=$_POST['neueBreite'];
$aktion = $_POST['aktion'];
?>
<html>
<head>
<title>Thumb-Generator</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="800" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#000000">
<tr>
<td bgcolor="#CCCCCC">
<p align="center"><b>Thumb-Generator</b></p>
</td>
</tr>
<tr>
<TD>
<?php
echo "<h2>aktion= ".$aktion."<br>\n";
echo "in= ".$PicPathIn."<br>\n";
echo "out= ".$PicPathOut."<br></h2>\n";
// Wenn Thums erzeugt werden sollen also action = generate ist
if ($aktion == "generate"){
// Überprüfungen ob die angegebenen Verzeichnisse stimmen
if (!is_dir($PicPathIn) or !is_dir($PicPathOut)) {
echo "Verzeichniss existiert nicht";
exit;
}
// Verzeichniss laden
$verz=opendir ($PicPathIn);
$i=1;
//Bild-Schleife
while (($bild = readdir ($verz))!== false) {
if (is_file($PicPathIn."/".$bild)) {
$srcImage = $PicPathIn."/".$bild;
$pathparts = pathinfo($srcImage);
$ext = strtolower($pathparts['extension']);
echo "<br>Bild : ".$bild." - Extension : ".$ext."<br>";
//Überprüfung ob es sich um ein Bild handelt wenn ja dann mach weiter
if(($ext == "jpg")||($ext == "jpeg")){
$srcImages[$i]=$srcImage;
$destImages[$i]= $PicPathOut."/mini".$bild;
echo "eingelesenes Blid : ".$srcImages[$i]." - Bildnummer : ".$i."<br>\n";
echo "auszugebendes Blid : ".$destImages[$i]." - Bildnummer : ".$i."<br>\n";
$i++;
}
else{
// Fehler Meldung wenn es sich nicht um eine jpg,gif -Datei handelt
echo $bild." -Kann nicht bearbeitet werden <br>";
}
}
}
closedir($PicPathIn);
//Erzeugung der Thumbs
for ($j=1;$j<=$i;$j++) {
echo "Bild zu verkeinern= ".$srcImages[$j]." - Bildnummer : ".$j."<br>\n";
$srcImage=$srcImages[$j];
$destImage=$destImages[$j];
$gross=getimagesize($srcImage);
$breite=$gross[0];
$hoehe=$gross[1];
$neueHoehe=intval($hoehe*$neueBreite/$breite);
echo "alte Breite= ".$breite."<br>\n";
echo "neue Breite= ".$neueBreite."<br>\n";
echo "alte Hoehe= ".$hoehe."<br>\n";
echo "neue Hoehe= ".$neueHoehe."<br>\n";
$altesBild=ImageCreateFromJPEG($srcImage);
echo "Bild zu verkeinern= ".$srcImage." - Bildnummer : ".$j."<br>\n";
echo "Programm läuft bis hierher <br>";
$neuesBild=ImageCreateTrueColor($neueBreite, $neueHoehe);
ImageCopyResized($neuesBild, $altesBild,
0,
0,
0,
0,
$neueBreite,
$neueHoehe,
$breite,
$hoehe);
ImageJPEG($neuesBild, $destImage,75);
ImageDestroy($neuesBild);
ImageDestroy($altesBild);
echo $destImage." OK!<br>";
}
}
// Formular ausgabe
else {
echo "
<form name=\"form1\" method=\"post\" action=\"bild.php\">
<table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"71\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Quelle:</font></b></td>
<td width=\"325\">
<input type=\"Hidden\" name=\"PicPathIn\" value=\"".$PicPathIn."\">
</td>
</tr>
<tr>
<td width=\"71\" height=\"18\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Ziel:</font></b></td>
<td width=\"325\" height=\"18\">
<input type=\"Hidden\" name=\"PicPathOut\" value=\"".$PicPathOut."\">
</td>
</tr>
<td width=\"71\" height=\"18\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Tumb-Größe:</font></b></td>
<td width=\"325\" height=\"18\">
<input type=\"text\" name=\"neueBreite\" value=\"100\">
</td>
</tr>
</table>
<p>
<input type=\"submit\" name=\"aktion\" value=\"generate\">
</p>
</form>
<p> </p>
<p> </p>";
}
?>
ich habe mir einen kleinen scrip aus dem Internet geholt, und ihn an meine Vorstellungen angepasst.
Der Script soll Thumbnails erstellen und abspeichern.
Tut er auch, mit der Einschränkung, wenn ich an ein Bild komme, das größer als ca. 500kB ist, bricht er einfach ohne Fehlermeldung ab.
Hat jemand schon mal etwas von einer Größenbeschränkung gehört, oder ist es ein anderer Fehler, der sich nur an der gleichen Stelle ergibt ?
Anbei meine Datei.
<?php
$PicPathIn=$_POST['PicPathIn'];
$PicPathOut=$_POST['PicPathOut'];
$neueBreite=$_POST['neueBreite'];
$aktion = $_POST['aktion'];
?>
<html>
<head>
<title>Thumb-Generator</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table width="800" border="1" cellspacing="0" cellpadding="0" align="center" bordercolor="#000000">
<tr>
<td bgcolor="#CCCCCC">
<p align="center"><b>Thumb-Generator</b></p>
</td>
</tr>
<tr>
<TD>
<?php
echo "<h2>aktion= ".$aktion."<br>\n";
echo "in= ".$PicPathIn."<br>\n";
echo "out= ".$PicPathOut."<br></h2>\n";
// Wenn Thums erzeugt werden sollen also action = generate ist
if ($aktion == "generate"){
// Überprüfungen ob die angegebenen Verzeichnisse stimmen
if (!is_dir($PicPathIn) or !is_dir($PicPathOut)) {
echo "Verzeichniss existiert nicht";
exit;
}
// Verzeichniss laden
$verz=opendir ($PicPathIn);
$i=1;
//Bild-Schleife
while (($bild = readdir ($verz))!== false) {
if (is_file($PicPathIn."/".$bild)) {
$srcImage = $PicPathIn."/".$bild;
$pathparts = pathinfo($srcImage);
$ext = strtolower($pathparts['extension']);
echo "<br>Bild : ".$bild." - Extension : ".$ext."<br>";
//Überprüfung ob es sich um ein Bild handelt wenn ja dann mach weiter
if(($ext == "jpg")||($ext == "jpeg")){
$srcImages[$i]=$srcImage;
$destImages[$i]= $PicPathOut."/mini".$bild;
echo "eingelesenes Blid : ".$srcImages[$i]." - Bildnummer : ".$i."<br>\n";
echo "auszugebendes Blid : ".$destImages[$i]." - Bildnummer : ".$i."<br>\n";
$i++;
}
else{
// Fehler Meldung wenn es sich nicht um eine jpg,gif -Datei handelt
echo $bild." -Kann nicht bearbeitet werden <br>";
}
}
}
closedir($PicPathIn);
//Erzeugung der Thumbs
for ($j=1;$j<=$i;$j++) {
echo "Bild zu verkeinern= ".$srcImages[$j]." - Bildnummer : ".$j."<br>\n";
$srcImage=$srcImages[$j];
$destImage=$destImages[$j];
$gross=getimagesize($srcImage);
$breite=$gross[0];
$hoehe=$gross[1];
$neueHoehe=intval($hoehe*$neueBreite/$breite);
echo "alte Breite= ".$breite."<br>\n";
echo "neue Breite= ".$neueBreite."<br>\n";
echo "alte Hoehe= ".$hoehe."<br>\n";
echo "neue Hoehe= ".$neueHoehe."<br>\n";
$altesBild=ImageCreateFromJPEG($srcImage);
echo "Bild zu verkeinern= ".$srcImage." - Bildnummer : ".$j."<br>\n";
echo "Programm läuft bis hierher <br>";
$neuesBild=ImageCreateTrueColor($neueBreite, $neueHoehe);
ImageCopyResized($neuesBild, $altesBild,
0,
0,
0,
0,
$neueBreite,
$neueHoehe,
$breite,
$hoehe);
ImageJPEG($neuesBild, $destImage,75);
ImageDestroy($neuesBild);
ImageDestroy($altesBild);
echo $destImage." OK!<br>";
}
}
// Formular ausgabe
else {
echo "
<form name=\"form1\" method=\"post\" action=\"bild.php\">
<table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
<tr>
<td width=\"71\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Quelle:</font></b></td>
<td width=\"325\">
<input type=\"Hidden\" name=\"PicPathIn\" value=\"".$PicPathIn."\">
</td>
</tr>
<tr>
<td width=\"71\" height=\"18\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Ziel:</font></b></td>
<td width=\"325\" height=\"18\">
<input type=\"Hidden\" name=\"PicPathOut\" value=\"".$PicPathOut."\">
</td>
</tr>
<td width=\"71\" height=\"18\"><b><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"2\">Tumb-Größe:</font></b></td>
<td width=\"325\" height=\"18\">
<input type=\"text\" name=\"neueBreite\" value=\"100\">
</td>
</tr>
</table>
<p>
<input type=\"submit\" name=\"aktion\" value=\"generate\">
</p>
</form>
<p> </p>
<p> </p>";
}
?>