watermerk-bij-upload-foto

Gesponsorde koppelingen

PHP script bestanden

  1. watermerk-bij-upload-foto

« Lees de omschrijving en reacties

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?
//--- 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>";
}


?>

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.