<?php
//--- zet path
$path = "images/"; // met slash en chmod 777! (of lager ivm veiligheid)
//--- zet max. kb's
$maxkb = 40960; // 40960 gedeelt door 1024 is 40 (kb) DUS 1024 keer <aantal kb's> = $maxkb
//--- watermerk path
$path_watermerk = "watermerk.png"; // dit MOET een transparante .png zijn!!!
//--- bekijk of het bestand kleiner of net zo groot als 40 kb is en of de foto wel geupload is en of extentie wel .jpg of .jpeg is!
if ($_POST['submit'] && $_FILES['userfile']['size'] <= $maxkb && !file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['size'] && is_uploaded_file($_FILES['userfile']['tmp_name']) && (strtolower(substr($_FILES['userfile']['name'], -3)) == "jpg" || strtolower(substr($_FILES['userfile']['name'], -4)) == "jpeg"))
{
//--- upload image naar $path
move_uploaded_file($_FILES['userfile']['tmp_name'], $path . $_FILES['userfile']['name']);
//--- transparante watermerk
$watermerk = imagecreatefrompng($path_watermerk);
$watermerk_width = imagesx($watermerk);
$watermerk_height = imagesy($watermerk);
imagecreatetruecolor($watermerk_width, $watermerk_height);
//--- orriginele image
$image = imagecreatefromjpeg($path . $_FILES['userfile']['name']);
$size = getimagesize($path . $_FILES['userfile']['name']);
//--- defineer de coordinaten van het watermerk - dit voorbeeld is links onder
/*
bijv: geuploade plaatje: 180 x 130
watermerk groote: 50 x 16
berekening voor coordinaten 'x' as:
180 (breedte geuploade foto) - 50 (breedte watermerk) - 5 (ruimte rechts) = 125 pixels vanaf links
berekening voor 'y' as:
130 (hoogte geuploade foto) - 16 (hoogte watermerk) - 5 (ruimte onder) = 109 pixels vanaf boven
*/
//--- dit is voor rechts boven
$xas = $size[0] - $watermerk_width - 5;
$yas = 5;
//--- overschrijf het 'geuploade bestand' en voeg watermerk toe
imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 100);
//--- upload image
imagejpeg($image, $path . $_FILES['userfile']['name']); // max. kwaliteit
imagedestroy($image);
imagedestroy($watermerk);
echo "De foto is geupload. Je kunt de foto bekijken door op de onderstaande link te klikken:<br />";
echo "<a href=\"" . $path . $_FILES['userfile']['name'] . "\">" . $path . $_FILES['userfile']['name'] . "</a><p>";
echo "<img src=\"" . $path . $_FILES['userfile']['name'] . "\"><p>";
echo "<a href=\"" . $_SERVER['PHP_SELF'] . "\">upload nog een foto</a>";
}
else
{
//--- errors
if ($_POST['submit'])
{
if (file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['name'])
echo "<b>Error! Bestand bestaat al, hernoem de foto en probeer het opnieuw.</b><p>";
elseif ($_FILES['userfile']['size'] > $maxkb)
echo "<b>Error! Bestand is groter dan " . $maxkb . "bytes. Verklein de foto en probeer het opnieuw</b><p>";
elseif (strtolower(substr($_FILES['userfile']['name'], -3)) != "jpg" && strtolower(substr($_FILES['userfile']['name'], -4)) != "jpeg")
echo "<b>Error! De foto heeft een verkeerde bestandsnaam. Er mogen alleen foto's geupload worden met als bestandsnaam .jpg of .jpeg.</b><p>";
else
echo "<b>Error! De foto is niet goed geupload of er is helemaal geen foto geupload. Probeer het opnieuw.</b><p>";
}
else
echo "Selecteer een foto om te uploaden. In de foto wordt automatisch het logo van PHPhulp verwerkt.<p>";
//--- formulier met enctype multipart/form-data ivm de file upload
echo "<form method=\"post\" action=\"" . $_SERVER['PHP_SELF'] . "\" enctype=\"multipart/form-data\">";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"" . $maxkb . "\" />";
echo "Bestand:<br />";
echo "<input type=\"file\" name=\"userfile\" value=\"" . $_POST['userfile'] . "\" /><br />";
echo "<input type=\"submit\" name=\"submit\" value=\"uploaden\" />";
echo "</form>";
}
?>
<?php
//--- zet path
$path="images/";// met slash en chmod 777! (of lager ivm veiligheid)
//--- zet max. kb's
$maxkb=40960;// 40960 gedeelt door 1024 is 40 (kb) DUS 1024 keer <aantal kb's> = $maxkb
//--- watermerk path
$path_watermerk="watermerk.png";// dit MOET een transparante .png zijn!!!
//--- bekijk of het bestand kleiner of net zo groot als 40 kb is en of de foto wel geupload is en of extentie wel .jpg of .jpeg is!
ob_start() hoeft volgens mij helemaal niet. Ik heb namelijk laatst een script gemaakt waar ik imagecopy gebruikte en dat werkte prima.
Ik denk dat het probleem is dat $copywright geen plaatje is. Probeer is imagecreatefromjpeg('plaatje.jpg') als copywright
edit: in je nieuwere versie had je dat dus al. Wat gebeurd er als je het imagecopy even weghaalt?
Ik zei dat van ob_start omdat de TS in zijn eerste script gebruik maakte van header(). Dan is het weldegelijk nodig. Maar nu blijkt de TS ineens een heel ander script te gebruiken dan hij in eerste instantie deed voorkomen.. Fijn dat we er zo achter moeten komen.
als het bij 6 en 7 niet werkt wat dacht je dan van 8.
of kijk anders in andere browsers(als je die niet hebt dowload firefox die houd zich keurig aan de regels(in tegenstelling tot IE5/6/7(8(weten we nog niet net wat te vroeg uit.))))
Wat is makkelijker, het watermerk toevoegen wanneer de foto opgevraagd word, of het watermerk toevoegen bij het uploaden?
Ik denk dat het ongeveer op hetzelfde zal neerkomen, maar misschien is bij het weergeven beter omdat je dan ook nog de foto in een "normale" vorm hebt, het nadeel is wel dat er met eventueel enkele omwegen de originele foto kan verkregen worden zonder dat je het wilt