MultipowUpload+ Bild verkleinern

oldputz1990

Erfahrenes Mitglied
Hallo!

Ich benütze zum Uploaden der Bilder "MulitPowUpload".
Die Bilder werden dann an die "bildupload.php" Datei gesendet.
Dort werden sie verarbeitet:

PHP:
<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

echo 'Upload result:<br>'; // At least one symbol should be sent to response

	

if(isset($_GET['ordner']))
	{
		$ord = strip_tags($_GET['ordner']);
		mkdir('fotoalbum/'.$ord.'/big', 666);
		mkdir('fotoalbum/'.$ord.'/small', 666);
	}
	else
	{
		$ord = 'error';
	}
	
	
$uploaddir = dirname($_SERVER['SCRIPT_FILENAME'])."/fotoalbum/$ord/";


$target_encoding = "ISO-8859-1";

echo '<pre>';


include("resize.php");


if(count($_FILES) > 0)
{
	$arrfile = pos($_FILES);
	$uploadfile = $uploaddir . iconv("UTF-8", $target_encoding,basename($arrfile['name']));

scaleimage(500);

	if (move_uploaded_file($arrfile['tmp_name'], $uploadfile))
	   echo "File is valid, and was successfully uploaded.\n";

}
else
	echo 'No files sent. Script is OK!'; //Say to Flash that script exists and can receive files

echo 'Here is some more debugging info:';
print_r($_FILES);

echo "</pre>";



?>

---> resize.php:
PHP:
<?php

error_reporting(E_ALL);

function scaleimage($ThumbnailBreite){

// Bildsignatur, die eingefügt werden soll (GIF, JPEG oder PNG)
$Bildpfad = "logo2.png";


$Grafikdatei = $uploadfile;


$Bilddaten = getimagesize($Grafikdatei);


$OriginalBreite = $Bilddaten[0];

$OriginalHoehe = $Bilddaten[1];



if($OriginalBreite < $ThumbnailBreite)

{

    $ThumbnailBreite=$OriginalBreite;
    
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;

$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);


// Neue Grafik erstellen
if($Bilddaten[2] == 2)
{
  $Thumbnailgrafik = imagecreatetruecolor($ThumbnailBreite,$ThumbnailHoehe);
}
else
{
  $Thumbnailgrafik = imagecreate($ThumbnailBreite,$ThumbnailHoehe);
}



// Bildsignatur einlesen
$Bildinfos = getimagesize($Bildpfad);
switch($Bildinfos[2])
{
  case 1:
    // GIF-Bild
    $Bildsignatur = imagecreatefromgif($Bildpfad);
    break;
  case 2:
    // JPG-Bild
    $Bildsignatur = imagecreatefromjpeg($Bildpfad);
    break;
  case 3:
    // PNG-Bild
    $Bildsignatur = imagecreatefrompng($Bildpfad);
    break;
  default:
    // Error
    die("Bildsignatur ist kein Bild!");
}

// X-Y-Position rechnen
$x = $ThumbnailBreite - $Bildinfos[0];
$y = $ThumbnailHoehe - $Bildinfos[1];





if($Bilddaten[2]==1)

{
    $Originalgrafik = ImageCreateFromGIF($Grafikdatei);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageCopy($Thumbnailgrafik, $Bildsignatur, $x, $y, 0, 0, $Bildinfos[0], $Bildinfos[1]);
    ImageGIF($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==2)
{
    $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageCopy($Thumbnailgrafik, $Bildsignatur, $x, $y, 0, 0, $Bildinfos[0], $Bildinfos[1]);
    ImageJPEG($Thumbnailgrafik, $Grafikdatei, 85);
}

elseif($Bilddaten[2]==3)
{
    $Originalgrafik = ImageCreateFromPNG($Grafikdatei);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageCopy($Thumbnailgrafik, $Bildsignatur, $x, $y, 0, 0, $Bildinfos[0], $Bildinfos[1]);
    ImagePNG($Thumbnailgrafik, $Grafikdatei);
}


}

## 2



function scaleimage2($ThumbnailBreite){


$Grafikdatei = $_FILES["file"]["tmp_name"];


$Bilddaten = getimagesize($Grafikdatei);


$OriginalBreite = $Bilddaten[0];

$OriginalHoehe = $Bilddaten[1];



if($OriginalBreite < $ThumbnailBreite)

{

    $ThumbnailBreite=$OriginalBreite;
    
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;

$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);


if($Bilddaten[2]==1)

{
    $Originalgrafik = ImageCreateFromGIF($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageGIF($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==2)
{
    $Originalgrafik = ImageCreateFromJPEG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImageJPEG($Thumbnailgrafik, $Grafikdatei);
}

elseif($Bilddaten[2]==3)
{
    $Originalgrafik = ImageCreateFromPNG($Grafikdatei);
    $Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
    ImageCopyResized($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
    ImagePNG($Thumbnailgrafik, $Grafikdatei);
}


}

?>

Es werden die Bilder jedoch normal gespeichert.

Ohne Wasserzeichen und nicht verkleinert!

Wo ist der Fehler? :confused::confused:


Danke!
 
> scaleimage(500);
> if (move_uploaded_file($arrfile['tmp_name'], $uploadfile))

Vielleicht erst das Bild speichern und dann verkleinern, und nicht anders herum.
 
Zurück