Guten Tag zusammen,
ich hab folgendes gecodet:
Jedoch möchte ich noch eine Skalierung einbauen, ich bekomme es aber überhaupt nicht hin. Wäre nett wenn mir einer da helfen könnte.
Über Tipps, hinsichtlich Performance o.Ä. würde ich mich auch freuen
ich hab folgendes gecodet:
PHP:
<?php
header('Content-type: image/jpeg');
require('../conf/functions.inc');
/**
* Gallerieordner
*/
$dir = '../images/gallery/';
/**
* Pfad zum Wasserzeichen
*/
$watermark = '../images/gallery/watermark.png';
/**
* Skalierungsfaktor
*/
$ScaleFactor = xyz;
/**
* Dateinamenerweiterung rausfinden
*/
function getExt($str)
{
return strtolower(substr($str, strrpos($str, '.') + 1, 3));
}
// Sonderzeichen alá Leerzeichen am Anfang und Ende der übergebenen Variablen löschen
$reqDir = trim($_REQUEST['dir']);
$reqImg = trim($_REQUEST['img']);
// Prüfen, ob Datei existiert und dann Imageresourcen erstellen
if(file_exists($dir . $reqDir . '/' . $reqImg))
{
switch(getExt($reqImg))
{
case 'gif':
$imgSrc = imagecreatefromgif($dir . $reqDir . '/' . $reqImg);
break;
case 'jpg':
$imgSrc = imagecreatefromjpeg($dir . $reqDir . '/' . $reqImg);
break;
case 'png':
$imgSrc = imagecreatefrompng($dir . $reqDir . '/' . $reqImg);
break;
default:
trigger_error('Bildformat wird nicht unterstützt', E_USER_WARNING);
break;
}
}
// Verfahre mit Wasserzeichen ebenso
if(file_exists($watermark) && is_readable($watermark))
{
switch(getExt($watermark))
{
case 'jpg':
$imgWm = imagecreatefromjpeg($watermark);
break;
case 'png':
$imgWm = imagecreatefrompng($watermark);
break;
default:
trigger_error('Bildformat wird nicht unterstützt', E_USER_WARNING);
break;
}
}
// Breite und Höhe der Bilder ermitteln
$imgSrcWidth = imagesx($imgSrc);
$imgSrcHeight = imagesy($imgSrc);
$imgWmWidth = imagesx($imgWm);
$imgWmHeight = imagesy($imgWm);
// Skalierung
$scaledwidth = $imgSrcWidth;
$scaledheight = $imgSrcHeight;
// Neues Bild erstellen
$img = imagecreatetruecolor($scaledwidth, $scaledheight);
// Bild in das Neuerstellte einfügen
imagecopy($img, $imgSrc, 0, 0, 0, 0, $scaledwidth, $scaledheight);
// Wasserzeichen einfügen
imagecopy($img, $imgWm, $scaledwidth - $imgWmWidth, $scaledheight - $imgWmHeight, 0, 0, $imgWmWidth, $imgWmHeight);
imagejpeg($img); // JPEG erstellen
imagedestroy($img); // JPEG löschen
?>
Jedoch möchte ich noch eine Skalierung einbauen, ich bekomme es aber überhaupt nicht hin. Wäre nett wenn mir einer da helfen könnte.
Über Tipps, hinsichtlich Performance o.Ä. würde ich mich auch freuen