Webstatt.org - Community seit 2006 - 2012 (2024?)

Bildergalerie mit Wasserzeichen versehen

user-136
13.06.2006 18:25

Moin Leute!
Vorab schon mal: Ich bin Neuling hier + Anfänger...
Hat keiner eine Idee, wie ich ein Wasserzeichen in meine ganze Bildergalerie einifügen kann?
Ich benutze zum anzeigen der Galerie folgendes Script:
<?php
# konfiguration
$sDirpath = 'pics'; // ordner, der dursucht werden soll
$iPerpage = 30; // bilder pro seite
$iPerline = 5; // bilder pro zeile
$sThumbnailscript = 'img.php';

session_start();

# verzeichnis auslesen
$hDir = opendir($sDirpath);
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;
}

if(count($aPics) == 0)
die("Es wurden keine Bilder im angegebenen Ordner gefunden!"zwinkern;

# html head
?>
<html>
<head><link rel="stylesheet" type="text/css" href="main.css">
<title>Galerie</title>
<style>
div { border: solid 1px #a8a8a8; margin: 2px; padding: 2px; text-align: center; }
a img { margin: 2px; padding:2px; border: solid 1px #a8a8a8; }
a:hover img { background-color: #E6E6E6; }
</style>
</head>
<center><img src="lol.gif"></center>
<body>

<?php

# einzelnes bild anzeigen
$iPic = $_GET['bild'];
if(!empty($iPic) && isset($aPics[($iPic - 1)])){
$iPic--;
$iPage = floor(($iPic) / $iPerpage) + 1;
# navigation
echo '<div>';
if(isset($aPics[$iPic - 1])) echo '<a href="?bild='.($iPic).'">zurück</a> &nbsp; ';
echo '<a href="?seite='.$iPage.'">Vorschau</a>';
if(isset($aPics[$iPic + 1])) echo ' &nbsp; <a href="?bild='.($iPic + 2).'">vor</a>';
echo "</div>";

# bild
$HTMLimg = '<img src="'.$sDirpath.'/'.$aPics[$iPic].'" alt="'.$aPics[$iPic].'">';
if(isset($aPics[$iPic + 1]))
$img = '<a href="?bild='.($iPic + 1).'">'.$HTMLimg.'</a>';
$HTMLimg = '<div style="text-align: center; border: none;">'.$HTMLimg.'</div>';
echo $HTMLimg;

exit; # abbrechen
}

# thumbnails anzeigen

$iPage = intval($_GET['seite']);
$iPages = ceil(count($aPics) / $iPerpage);

# seite korrigieren
if (empty($iPage)) $iPage = 1;
elseif ($iPage < 1) $iPage = 1;
elseif ($iPage > $iPages) $iPage = $iPages;

# navigation
if($iPages > 1){
$HTMLnavi = '<div>';
# zurück
if ($iPage != 1) $HTMLnavi .= '<a href="?seite='.($iPage - 1).'">zurück</a>';
# seitenzahlen
for ($i = 1; $i < ($iPages + 1); $i++) {
if ($i != $iPage)
$HTMLnavi .= ' &nbsp; <a href="?seite=' . $i . '">' . $i . "</a>";
else
$HTMLnavi .= ' &nbsp; <b>' . $i . '</b>'; # aktuelle seite
}
# vorwärts
if ($iPage < $iPages)
$HTMLnavi .= ' &nbsp; <a href="?seite='.($iPage + 1).'"> vor</a>';

$HTMLnavi .= "</div>";
}

# thumbs
$HTMLbody = '<div style="margin-top: 4px; margin-bottom: 4px;">';

if ($iPage == $iPages) # letzte seite
$iLastpic = count($aPics) - 1;
else
$iLastpic = $iPerpage + ($iPerpage * ($iPage - 1)) - 1;

for ($j = (0 + ($iPage - 1) * $iPerpage); $j <= $iLastpic; $j++){
$HTMLbody .= '<a href="?bild='.($j + 1).'"><img src="'.$sThumbnailscript.'?file='.$sDirpath.'/'.$aPics[$j].'" title="Hier klicken zum vergroessern" alt="'.$aPics[$j]."\" /></a>\n";
if((($j + 1) % $iPerline) == 0)
$HTMLbody .= "<br>";
}

$HTMLbody .= '</div>';

echo $HTMLnavi . $HTMLbody . $HTMLnavi;

?>


Folgendes Script müsste ich nur einfügen, aber wie?
header('Content-type: image/jpeg'zwinkern;
$file = 'narrtrium.jpg';

// Originalformat auslesen
$size = getimagesize($file);
$width = $size[0];
$height = $size[1];

// Bild laden
$old_picture = imagecreatefromjpeg($file);

// Neues Bild erzeugen
$new_picture = imagecreatetruecolor($width, $height);

// Kopiert das Ursprungsbild und formatiert es um + Weichzeichnung.
imagecopyresampled($new_picture, $old_picture, 0, 0, 0, 0, $width, $height, $width, $height);

// Wasserzeichen einbinden
$transition = 50;
$watermarkfile = imagecreatefrompng('wasserzeichen.png'zwinkern;
$waternarkpic_width = imagesx($watermarkfile);
$waternarkpic_height = imagesy($watermarkfile);
$watermarkdest_x = $width / 2 - ($waternarkpic_width / 2);
$watermarkdest_y = $height / 2 - ($waternarkpic_height / 2);
imagecopymerge($new_picture, $watermarkfile, $watermarkdest_x, $watermarkdest_y, 0, 0, $waternarkpic_width, $waternarkpic_height, $transition);

// Bild ausgeben
imagejpeg($new_picture);


Mein Problem ist, wie ich das aktuelle Bilde (denke mal den Array $aPics[$j]) dem script zuweise und wie es dann automatisch abläuft.

VIELEN DANK FÜR EURE MÜHE

Gruß
Benny