Willkommen in der Webstatt Zum Webstatt Blog und Stories
Al3x0r Al3x0r am 13.04.06 21:13

Das ist mein code:


Die Funktion:
function thumb($file, $save, $width, $height, $prop = TRUE) {
@unlink($save);
$infos = @getimagesize($file);
if($prop) {
// Proportionen erhalten
$iWidth = $infos[0];
$iHeight = $infos[1];
$iRatioW = $width / $iWidth;
$iRatioH = $height / $iHeight;
if ($iRatioW < $iRatioH)
{
$iNewW = $iWidth * $iRatioW;
$iNewH = $iHeight * $iRatioW;
} else {
$iNewW = $iWidth * $iRatioH;
$iNewH = $iHeight * $iRatioH;
} // end if
} else {
// Strecken und Stauchen auf Größe
$iNewW = $width;
$iNewH = $height;
}

if($infos[2] == 2) {
// Bild ist vom Typ jpg
$imgA = imagecreatefromjpeg($file);
$imgB = imagecreatetruecolor($iNewW,$iNewH);
imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW,
$iNewH, $infos[0], $infos[1]);
imagejpeg($imgB, $save);
} elseif($infos[2] == 3) {
// Bild ist vom Typ png
$imgA = imagecreatefrompng($file);
$imgB = imagecreatetruecolor($iNewW, $iNewH);
imagecopyresampled($imgB, $imgA, 0, 0, 0, 0, $iNewW,
$iNewH, $infos[0], $infos[1]);
imagepng($imgB, $save);
} else {
return FALSE;
}
}



damit wird die Funktion aufgerufen:
// Quelldatei
$from = $_POST['file'].'/'.$sFilename;
// Ziel 1+2
$to1 = $_POST['file'].'/th/'.$sFilename;
// Funktionsaufruf mit Einbehaltung der Proportionen
thumb($from, $to1, 170, 170, TRUE);


damit wird der Bilderordner geöffnet:
$hDir = opendir($_POST['file']);

while($sFilename = readdir($hDir)) {
$sFilepath = $sDirpath.'/'.$sFilename;
# jpeg, gif und png rausfiltern
$aPicinfo = @getimagesize($sFilepath);
if(in_array($aPicinfo[2], array(1,2,3), true))
$aPics[] = $sFilename;
$count++;


Ein beispiel wie $_GET['file'] aussehen kann:
./gallery/pics/galleriename


und der Fehler:

Warning: Division by zero in C:\Programme\xampp\htdocs\webdesign\Picture-Parade\Picture-Para.de mit Userbereich\gallery\admin\galleryeintrag.php on line 25

Warning: Division by zero in C:\Programme\xampp\htdocs\webdesign\Picture-Parade\Picture-Para.de mit Userbereich\gallery\admin\galleryeintrag.php on line 26
Thumbnail von . erfolgreich erstellt.

Warning: Division by zero in C:\Programme\xampp\htdocs\webdesign\Picture-Parade\Picture-Para.de mit Userbereich\gallery\admin\galleryeintrag.php on line 25

Warning: Division by zero in C:\Programme\xampp\htdocs\webdesign\Picture-Parade\Picture-Para.de mit Userbereich\gallery\admin\galleryeintrag.php on line 26
Thumbnail von .. erfolgreich erstellt.


Ich bin schon soweit gekommen, dass die Funktion versucht von "." und ".." ein Thumbnail zu erstellen, was aber ja nicht möglich ist.... Wie kann ich nun dafür sorgen ,dass dieser Fehler nicht mehr auftritt? Das skript läuft zwar , und die Thumbnails werden auch erstellt aber der Fehler stört mich trotzdem...

ich habe irgendwo mal was davon:
while (false !== ($file = readdir($action)))
{
$count=0;
if ($file != ".." && $file != ".")
{
if (strpos($file, ".") === false)
{
}
}
}


Wie muss ich das nun bei mir einbauen ?

Danke denjenigen, die sich die Mühe gemacht haben, diesen endslangen Text zu lesen und schonmal danke im Vorraus.

mfg Alex


edit:// ich bin so blöd.... Oh Mensch die ganze zeit nen brett vor dem Kopf, dabei ist es so einfach ...

gelöst hab ich so.

if ($sFilename != "." && $sFilename != "..")
{
thumb($from, $to1, 170, 170, TRUE);
}

netcup.de Warum gibt es hier Werbung?
Michael Michael am 13.04.06 21:20

Hier würde es Sinn machen:

$hDir = opendir($_POST['file']);

while($sFilename = readdir($hDir)) {
if(($sFilename != '.') && ($sFilename != '..')) {
$sFilepath = $sDirpath.'/'.$sFilename;
# jpeg, gif und png rausfiltern
$aPicinfo = @getimagesize($sFilepath);
if(in_array($aPicinfo[2], array(1,2,3), true))
$aPics[] = $sFilename;
$count++;
// ...
}
}


Michael

// edit hatte sich ja eh erledigt

Al3x0r Al3x0r am 13.04.06 21:24

$hDir = opendir($_POST['file']);

while($sFilename = readdir($hDir)) {
if(($sFilename != '.') && ($sFilename != '..') && ($sFilename != 'th')) {
$sFilepath = $sDirpath.'/'.$sFilename;
# jpeg, gif und png rausfiltern
$aPicinfo = @getimagesize($sFilepath);
if(in_array($aPicinfo[2], array(1,2,3), true))
$aPics[] = $sFilename;
$count++;
// ...
}
}


habs nun auch so gemacht.
Echt klasse, man postet etwas und hat 10 Minuten später ne Antwort...
Gäbe es einen "erledigt" Button würde ich ihn nun klicken ;-)

mfg Alex

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt