Wenn Sie mit der GD-Bibliothek von PHP vertraut sind, ist es überhaupt nicht schwer, diesen Artikel zu verstehen!
<?php
/***************************************************** ***** *******************************
Parameterbeschreibung:
$max_file_size: Größenbeschränkung für Upload-Dateien, Einheit BYTE
$destination_folder: Dateipfad hochladen
$watermark: Ob ein Wasserzeichen hinzugefügt werden soll (1 bedeutet Wasserzeichen hinzufügen, andere bedeutet kein Wasserzeichen hinzufügen)
;
1. Entfernen Sie das ;-Zeichen vor der Zeile „extension=php_gd2.dll“ in der PHP.INI-Datei, da wir die GD-Bibliothek verwenden müssen;
2. Ändern Sie extension_dir = in das Verzeichnis, in dem sich Ihre php_gd2.dll befindet.
************************************************** * ******************************/
//Liste der Dateitypen hochladen
$uptypes=array(
'image/jpg',
'Bild/JPEG',
'image/png',
'image/pjpeg',
'Bild/GIF',
'image/bmp',
'image/x-png'
);
$max_file_size=2000000; //Grenze für die Dateigröße, Einheit BYTE
$destination_folder="uploadimg/"; //Dateipfad hochladen
$watermark=1; //Ob ein Wasserzeichen hinzugefügt werden soll (1 bedeutet Wasserzeichen hinzufügen, andere bedeutet kein Wasserzeichen hinzufügen);
$watertype=1; //Wasserzeichentyp (1 ist Text, 2 ist Bild)
$waterposition=1; //Wasserzeichenposition (1 ist die untere linke Ecke, 2 ist die untere rechte Ecke, 3 ist die obere linke Ecke, 4 ist die obere rechte Ecke, 5 ist in der Mitte);
$waterstring=" http://www.xplore.cn/ "; //Wasserzeichenzeichenfolge
$waterimg="xplore.gif"; //Wasserzeichenbild
$imgpreview=1; //Ob ein Vorschaubild generiert werden soll (1 bedeutet generiert, andere nicht generieren);
$imgpreviewsize=1/2; //Thumbnail-Verhältnis
?>
<html>
<Kopf>
<title>ZwelL-Bild-Upload-Programm</title>
<style type="text/css">
<!--
Körper
{
Schriftgröße: 9pt;
}
Eingang
{
Hintergrundfarbe: #66CCFF;
Rand: 1 Pixel Einschub #CCCCCC;
}
->
</style>
</head>
<body>
<form enctype="multipart/form-data" method="post" name="upform">
Dateien hochladen:
<Eingabename="upfile" type="file">
<input type="submit" value="Upload"><br>
Die Dateitypen, die hochgeladen werden dürfen, sind:<?=implode(', ',$uptypes)?>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!is_uploaded_file($_FILES["upfile"][tmp_name]))
//Existiert die Datei?
{
echo „Das Bild existiert nicht!“;
Ausfahrt;
}
$file = $_FILES["upfile"];
if($max_file_size < $file["size"])
//Dateigröße prüfen
{
echo „Die Datei ist zu groß!“;
Ausfahrt;
}
if(!in_array($file["type"], $uptypes))
//Dateityp prüfen
{
echo „Dateityp stimmt nicht überein!“.$file[“type“];
Ausfahrt;
}
if(!file_exists($destination_folder))
{
mkdir($destination_folder);
}
$filename=$file["tmp_name"];
$image_size = getimagesize($filename);
$pinfo=pathinfo($file["name"]);
$ftype=$pinfo['extension'];
$destination = $destination_folder.time().".".$ftype;
if (file_exists($destination) && $overwrite != true)
{
echo „Die Datei mit demselben Namen existiert bereits“;
Ausfahrt;
}
if(!move_uploaded_file ($filename, $destination))
{
echo „Fehler beim Verschieben der Datei“;
Ausfahrt;
}
$pinfo=pathinfo($destination);
$fname=$pinfo[Basisname];
echo " <font color=red>Erfolgreich hochgeladen</font><br>Dateiname: <font color=blue>".$destination_folder.$fname."</font><br>";
echo „Breite:“.$image_size[0];
echo "length:".$image_size[1];
echo "<br> size:".$file["size"]." bytes";
if($watermark==1)
{
$iinfo=getimagesize($destination,$iinfo);
$nimage=imagecreatetruecolor($image_size[0],$image_size[1]);
$white=imagecolorallocate($nimage,255,255,255);
$black=imagecolorallocate($nimage,0,0,0);
$red=imagecolorallocate($nimage,255,0,0);
imagefill($nimage,0,0,$white);
Schalter ($iinfo[2])
{
Fall 1:
$simage =imagecreatefromgif($destination);
brechen;
Fall 2:
$simage =imagecreatefromjpeg($destination);
brechen;
Fall 3:
$simage =imagecreatefrompng($destination);
brechen;
Fall 6:
$simage =imagecreatefromwbmp($destination);
brechen;
Standard:
die("Nicht unterstützter Dateityp";
Ausfahrt;
}
imagecopy($nimage,$simage,0,0,0,0,$image_size[0],$image_size[1]);
imagefilledrectangle($nimage,1,$image_size[1]-15,80,$image_size[1],$white
switch($watertype)
{
Fall 1: // Wasserzeichenzeichenfolge hinzufügen
imagestring($nimage,2,3,$image_size[1]-15,$waterstring,$black);
brechen;
Fall 2: //Wasserzeichenbild hinzufügen
$simage1 =imagecreatefromgif("xplore.gif";
imagecopy($nimage,$simage1,0,0,0,0,85,15);
imagedestroy($simage1);
brechen;
}
Schalter ($iinfo[2])
{
Fall 1:
//imagegif($nimage, $destination);
imagejpeg($nimage, $destination);
brechen;
Fall 2:
imagejpeg($nimage, $destination);
brechen;
Fall 3:
imagepng($nimage, $destination);
brechen;
Fall 6:
imagewbmp($nimage, $destination);
//imagejpeg($nimage, $destination);
brechen;
}
//Die ursprünglich hochgeladene Datei überschreiben
imagedestroy($nimage);
imagedestroy($simage);
}
if($imgpreview==1)
{
echo "<br>Bildvorschau:<br>";
echo "<img src="".$destination."" width=".($image_size[0]*$imgpreviewsize)." height=".($image_size[1]*$imgpreviewsize);
echo " alt="Bildvorschau:rDateiname:".$destination."rUpload-Zeit:">";
}
}
?>
</body>
</html>
Abschließend halte ich es für notwendig, über das Prinzip der Wasserzeichenmarkierung von Bildern zu sprechen:
Abrufen der hochgeladenen Dateiinformationen, Erstellen eines Echtfarbenbildes, Zuweisen eines Farbschemas und Füllen des Bildes.
Erstellen Sie eine Grafik, indem Sie den Dateityp beurteilen, kopieren Sie sie dann in die ursprünglich erstellte Grafik, füllen Sie sie aus und erstellen Sie ein Rechteck, das
zum Bestimmen des Wasserzeichentyps in imagestring() oder das ursprüngliche Bildprogramm geschrieben werden kann: Einer ist ein String, der Anderes ist das Hinzufügen eines Grafikobjekts oben.