Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : ImageCreateFromJpeg funzt nicht



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>&nbsp;</p>
<p>&nbsp;</p>";
}

?>

AceTheFace
02-08-2005, 10:01
Ich hatte mal ein ähnliches Problem, allerdings mit einem selbstgeschriebenen Script. Bei mir ging bei großen Bildern immer der PHP zur Verfügung gestellte Speicher aus. Hab' das dann in der php.ini korrigiert und von da an liefs. Allerdings meine ich, dass PHP mir das in einer Fehlermeldung klar gemacht hat was falsch läuft...

Gruß,
Ace

co_negol
04-08-2005, 10:57
Hola,

well, bei mir kommt auch eine fehlermeldung:

Warning: imagejpeg(): supplied argument is not a valid Image resource in /srv/alex0-test/extranettpl/htdocs/test/ramon.php on line 92

mal bitte ohne , $destImage,75 also

ImageJPEG($neuesBild);

versuchen, dann klappts, sollte dann nur noch gespeichert werden :)

grüße
alex