UBAI Geschrieben 1. September 2004 Geschrieben 1. September 2004 Hallo, erst mal. Was benötige ich alles, um eine Bildergalerie mit PHP zu erstellen. Aufbau: Startseite zeigt Bilder (jeweils 30) verkleinert an (Thumbnails). Wird auf eins geklickt, wird es in Orginalgröße dargestellt. Müssen noch irgendwelche Dateien mit eingelinkt werden? hat evtl. jemand einen Bsp code? Das geht doch mit Thums oder?
.vash Geschrieben 1. September 2004 Geschrieben 1. September 2004 also die Thumbnails würde ich, sofern sie nicht bereits vorhanden sind, von PHP erstellen lassen. Dazu rate ich dir die Onlinedokumentation der entsprechenden Imagefunktionen auf PHP.net anzusehen. Dort in den Kommentaren sind nützliche Beispiele.
kills Geschrieben 1. September 2004 Geschrieben 1. September 2004 warum das rad ein 2. mal erfinden? z.b. http://gallery.menalto.com/modules.php?op=modload&name=News&file=index
UBAI Geschrieben 1. September 2004 Autor Geschrieben 1. September 2004 Ich such ja grad ne Funktion, die mir aus den jpg Thumbnails erzeugt. So was wie Create Tumbnails. Das macht doch die Funktion imagecreatefromjpeg (für jpgs) oder?
kills Geschrieben 1. September 2004 Geschrieben 1. September 2004 Ich such ja grad ne Funktion, die mir aus den jpg Thumbnails erzeugt. So was wie Create Tumbnails selbst ist der mann. bei php ist das nicht dabei. Musst dir aus den vorhandenen funktionen selber basteln! oder du nimmst meine so lange: <?php // Image-Basis-Objekt class Image { var $sFile; var $oImage = null; function Image($sFile) { $this->sFile = strtolower($sFile); $this->oImage = $this->getImageResource(); } function getImageResource() { trigger_error("Unsupported imageformat! File: '". $this->getFile() ."'", E_USER_ERROR); } function getImageHeight() { return imagesy($this->getImageResource()); } function getImageWidth() { return imagesx($this->getImageResource()); } function getFile() { return $this->sFile; } function getFileName() { return substr(strrchr($this->getFile(), "/"), 1); } function getFilePath() { return substr($this->getFile(), 0, strrpos($this->getFile(), "/") + 1 ); } function getImage() { trigger_error("Unsupported imageformat! File: '". $this->getFile() ."'", E_USER_ERROR); } function getThumbnail(&$sDestination, $iWidth = null, $iHeight = null) { if ($sDestination { strlen($sDestination) - 1 } != "/") $sDestination .= "/"; $sDestination .= str_replace(array("..", "."), array("__", "_"), $this->getFilePath()); $sFileLocation = $sDestination . $this->getFileName(); // Wenn schon ein thumbnail vorhanden ist, den Pfad zu diesem zurückgeben if ( file_exists( $sFileLocation)) { $sDestination = $sFileLocation; return null; } $oSrcImg = $this->getImageResource(); $iImgWidth = $this->getImageWidth(); $iImgHeight = $this->getImageHeight(); // Ordnerstruktur anlegen $this->makedir($sDestination); $sDestination = $sFileLocation; if ($iImgHeight > $iImgWidth) { // Hochkanntbilder proportional verkleinern $iHeight = $iWidth; $iWidth = null; } if (is_null($iWidth) && is_null($iHeight) || ($iImgWidth <= $iWidth && $iImgHeight <= $iHeight)) { // Weder Höhe noch Breite wurden angegeben oder // Die Höhe und Breite des Original Images ist schon kleiner als das Thumbnail das erstellt würde // => pfad auf das Original Image zurückgeben $sDestination = $this->getFile(); return null; } else if (is_null($iWidth)) { // Breite wurde angegebene, dazu die Höhe errechen $iWidth = ($iImgWidth / $iImgHeight) * $iHeight; } else if (is_null($iHeight)) { // Höhe wurde angegeben, dazu die Breite errechnen $iHeight = ($iImgHeight / $iImgWidth) * $iWidth; } $oThumbnail = imagecreatetruecolor($iWidth, $iHeight); imagecopyresized($oThumbnail, $oSrcImg, 0, 0, 0, 0, $iWidth, $iHeight, $iImgWidth, $iImgHeight); return $oThumbnail; } function makedir($sDir) { $aDir = explode("/", $sDir); $sParentDir = ""; foreach ($aDir as $sDirPart) { if ( $sDirPart == "") continue; $sCurrentDir = $sParentDir . $sDirPart . "/"; if (!is_dir($sCurrentDir)) { mkdir($sCurrentDir); } $sParentDir = $sCurrentDir; } } } /* GIF Bilder sind mit der GD-Lib nicht mehr möglich! // GIF-Format Objekt class ImageGif extends Image { function getImageResource() { if (is_null($this->oImage)) { $this->oImage = imagecreatefromgif($this->getFile()); } return $this->oImage; } function getImage() { return imagegif($this->getImageResource(), $this->getFile()); } function getThumbnail($sDestinationDir, $iWidth = null, $iHeight = null) { $oThumbnail = parent :: getThumbnail($sDestinationDir, $iWidth, $iHeight); return imagegif($oThumbnail, $sDestinationDir.$this->getFileName()); } } */ // JPG-Format Objekt class ImageJpg extends Image { function getImageResource() { if (is_null($this->oImage)) { $this->oImage = imagecreatefromjpeg($this->getFile()); } return $this->oImage; } function getImage() { return imagejpeg($this->getImageResource(), $this->getFile()); } function getThumbnail($sDestination, $iWidth = null, $iHeight = null) { $oThumbnail = parent :: getThumbnail($sDestination, $iWidth, $iHeight); if ( !is_null($oThumbnail)) { imagejpeg($oThumbnail, $sDestination); } return $sDestination; } } // PNG-Format Objekt class ImagePng extends Image { function getImageResource() { if (is_null($this->oImage)) { $this->oImage = imagecreatefrompng($this->getFile()); } return $this->oImage; } function getImage() { return imagepng($this->getImageResource(), $this->getFile()); } function getThumbnail($sDestination, $iWidth = null, $iHeight = null) { $oThumbnail = parent :: getThumbnail($sDestination, $iWidth, $iHeight); if ( !is_null($oThumbnail)) { imagepng($oThumbnail, $sDestination); } return $sDestination; } } // Factory zum erstellen von Image-Objekten class ImageFactory { function getImage( $sFileName) { if (!file_exists($sFileName)) { trigger_error("File '".$sFileName."' does not exist!", E_USER_ERROR); } $sFileType = strtolower(substr(strrchr($sFileName, "."), 1)); switch ($sFileType) { case "jpeg" : case "jpg" : return new ImageJpg($sFileName); // case "gif" : return new ImageGif($sFileName); case "png" : return new ImagePng($sFileName); default : return new Image($sFileName); } } } ?> [/PHP] PS: Gif Bilder sind seit der neuen GD-Lib wieder möglich. Du brauchst halt die entsprechende Version!
UBAI Geschrieben 1. September 2004 Autor Geschrieben 1. September 2004 Danke. Mit anderen Worten, ich muss die GD-Lib noch installieren?
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden