Ich versuche ein Bildmodul zu machen, bei dem ich die Größe eines einzelnen Bildes begrenzen kann. Sodass man also ein größeres Bild raufspielen kann, dieses aber kleiner ausgegeben wird. Habe im Forum zu dem thema nichts funktionierendes gefunden. Ich habe mir dann ohne viele php Kenntnisse etwas zusammengeschustert aus der Galerie von kummer (http://www.contenido.de/forum/viewtopic.php?t=5695)
und einem normalen Bildmodul. Soweit klappt es auch, dass ich in der Konfiguration die Bildgröße angeben kann, aber wenn ich im Editor ein Bild lade, wird es nicht angezeigt. Im Code wird kein Fehler angezeigt und ich kenne mich zu wenig aus, um herauszufindén, woran das liegt:
Hier mein Code:
Code: Alles auswählen
Input:
echo "<table>";
echo "<tr><td>Thumbnailbreite (Max.):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"5\" /></td>";
echo "<tr><td>Thumbnailhöhe (Max.):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>";
echo "</table>";
Code: Alles auswählen
Output:
<?
$this->thumbnailSize['width'] = "CMS_VALUE[2]";
$this->thumbnailSize['height'] = "CMS_VALUE[3]";
function checkInitValues() {
if ($this->thumbnailSize['width'] == '') $this->thumbnailSize['width'] = 100;
if ($this->thumbnailSize['height'] == '') $this->thumbnailSize['height'] = 100;
// rückgabe im erfolgsfall
return true;
}
function generateThumb($filename) {
$src_image_size = getimagesize($this->abspath['pictures'].$filename);
// prüfen, ob thumbnail bereits vorhanden ist
if (!file_exists("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg")) {
// ermitteln ob das bild auf bestimmte höhe oder bestimmte breite zu reduzieren ist
// sowie ermitteln, um welchen faktor das bild zu verkleinern ist
if ($src_image_size[0]/$src_image_size[1] > $this->thumbnailSize['width']/$this->thumbnailSize['height']) {
$verkleinerungsfaktor = $this->thumbnailSize['width']/$src_image_size[0];
} else {
$verkleinerungsfaktor = $this->thumbnailSize['height']/$src_image_size[1];
}
// berechnen der thumbnailgrösse
$bildhoehe = round($src_image_size[1] * $verkleinerungsfaktor);
$bildbreite = round($src_image_size[0] * $verkleinerungsfaktor);
// thumbnail erstellen
$dst_im = imagecreatetruecolor($bildbreite,$bildhoehe);
if ($src_image_size[2] == 1) {
$src_im = imagecreatefromGIF("{$this->abspath['pictures']}$filename");
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG("{$this->abspath['pictures']}$filename");
} else {
$src_im = @imagecreatefromgd("{$this->abspath['pictures']}$filename");
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,"{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg",100);
$size['width'] = $bildbreite;
$size['height'] = $bildhoehe;
} else {
$thumbnailsize = getimagesize("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg");
$size['width'] = $thumbnailsize[0];
$size['height'] = $thumbnailsize[1];
}
$size['filename'] = "{$this->path['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg";
return $size;
}
if ("CMS_IMG[1]" != "") {
$img = '<img src="CMS_IMG[1]" border="0">';
$imagelink = "CMS_LINK[1]";
if ($imagelink != "http://" && !empty($imagelink) && $imagelink != $cfgClient[$client]["path"]["htmlpath"])
{
$img = sprintf('<a href="%s" target="%s">%s</a>',"$imagelink", "CMS_LINKTARGET[1]", $img);
}
else {$img = '<img src="CMS_IMG[1]" border="0" width="$thumbnailsize[0]"; "height=$thumbnailsize[1]"; >';}
echo $img;
}
echo "<br>";
echo "<font class=\"text\">CMS_IMGDESCR[1]</font>";
echo "<br>";
echo "CMS_LINKDESCR[1]";
echo "<br>";
?>
Würde mich sehr über Tipps freuen!
Danke, sytanja