Hi Folks,
habe mir dieses Skript gebastelt um schnell einen kompletten Ordner
mit Bildern mit einem Wasserzeichen zu versehen.
Das Skript an sich abreitet einwandfrei, allerdings muss ich die Dateiberchtignungen der jeweiligen Ordner immmer manuell setzen. Was bei vielen Ordnern echt mühsam ist.
Ich habs schon mit chmod() und siteftp() probiert. Ohne Erfolg.
Nun würd ich gerne von euch wissen wie und welche Funktionen ihr
wo einsetzen würdet.
Das ganze Skript liegt hier
habe mir dieses Skript gebastelt um schnell einen kompletten Ordner
mit Bildern mit einem Wasserzeichen zu versehen.
Das Skript an sich abreitet einwandfrei, allerdings muss ich die Dateiberchtignungen der jeweiligen Ordner immmer manuell setzen. Was bei vielen Ordnern echt mühsam ist.
Ich habs schon mit chmod() und siteftp() probiert. Ohne Erfolg.
Nun würd ich gerne von euch wissen wie und welche Funktionen ihr
wo einsetzen würdet.
PHP-Code:
$dir = "./tmp";
function read_dir($dir)
{
$path = opendir($dir);
while (false !== ($file = readdir($path)))
{
if($file!="." && $file!="..")
{
if(is_file($dir."/".$file))
{
$files[]=$file;
} else {
$dirs[]=$dir."/".$file;
}
}
}
if(!$dirs){
echo "Keine Verzeichnisse gefunden!!<br><br>";
}else{
global $ordner; $ordner = $dirs;
}
}
function getImageFileNames($path)
{
$result = "";
$ar = array();
$handle=opendir($path);
while ($file = readdir ($handle))
{
if ($file != "." && $file != ".." && $file != "tn")
{
if (! is_dir($file))
{
$sub = substr($file, -4);
if ($sub == ".png" || $sub == ".jpg" || $sub == ".gif" || $sub == ".bmp")
$ar[] = $file;
//echo $file."\n";
}
}
}
closedir($handle);
return $ar;
}
function watermark($file){
// 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');
$waternarkpic_width = imagesx($watermarkfile);
$waternarkpic_height = imagesy($watermarkfile);
//$watermarkdest_x = $width / 2 - ($waternarkpic_width / 2);
//$watermarkdest_y = $height / 2 - ($waternarkpic_height / 2);
$watermarkdest_x = $width - ($waternarkpic_width+2);
$watermarkdest_y = 13;
imagecopymerge($new_picture, $watermarkfile, $watermarkdest_x, $watermarkdest_y, 0, 0, $waternarkpic_width, $waternarkpic_height, $transition);
// Bild ausgeben
imagejpeg($new_picture, "$file", 85);
}
read_dir($dir);
if(!$_POST['dir_choose'])
{
echo "Kein Verzeichnis ausgewählt!";
}else{
$destination = $_POST['dir_choose'];
$pictures = getImageFileNames($destination);
foreach($pictures as $values){
watermark($destination.'/'.$values);
}
echo sizeof($pictures)." <b>Bilder bearbeitet!</b>";
}
?>
Kommentar