Teil von  SELFPHP   Teil von  Code Snippets / PHP / Images
  +++ SELFPHP CronJob-Service :: Jetzt auch als Professional-Version verfügbar! +++

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: SELFPHP Forum ::

Fragen rund um die Themen PHP? In über 120.000 Beiträgen finden Sie sicher die passende Antwort!  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

:: Qozido ::

Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.   

 
 
Scrollbarer Wet Floor Effekt für Vorschaubilder erstellen





Beispielaufgabe

Nachfolgend stellen wir Ihnen eine Klasse in PHP5 vor, mit der Sie komfortabel Vorschaubilder erstellen und die generierten Vorschaubilder mit einem Wet Floor Effekt versehen können. Die Klasse wurden bereits in einem anderen Beispiel von SELFPHP vorgestellt, allerdings ohne die Möglichkeit der variablen Breite. Durch einfache CSS-Erweiterungen ist es mit dieser Klasse möglich, durch ein Scrollbalken alle Bilder zu durchlaufen. Die Klasse ist so konzipiert, dass Sie wahlweise ein oder mehrere Bilder als Vorschaubild mit einem Wet Floor Effekt versehen können. Nachfolgend sehen Sie einige so erstellte Vorschaubilder mit diesem Effekt. Alle angegebenen Bilder werden mit diesem Effekt erstellt und als ein Bild ausgegeben, wahlweise sogar mit Text, Rahmen und Abstand zwischen den Bildern.


Bild - 9 Bilder, schwarzer Hintergrund, Rahmen 10px, Bildunterschrift, Zellabstand 5 px.






example.php

Nachfolgend sehen Sie den Zugriff auf die Klasse.

<?php 

include_once 
'wetfloor-effect.php'

$pictures[0] = 'pictures/1.jpg'
$pictures[1] = 'pictures/4.jpg'
$pictures[2] = 'pictures/2.jpg'
$pictures[3] = 'pictures/5.jpg'
$pictures[4] = 'pictures/3.jpg'
$pictures[6] = 'pictures/1.jpg'
$pictures[7] = 'pictures/4.jpg'
$pictures[8] = 'pictures/2.jpg'
$pictures[9] = 'pictures/5.jpg'

$wetfloor = new WetFloorEffect( ); 

$wetfloor -> setimages( $pictures ); 

$wetfloor -> setEnvironment( 10, 5, 120 * count($pictures), 180, "000000" ); 

$wetfloor -> createWetFloor(); 

$wetfloor -> createText("Copyright 2010 SELFPHP OHG", "4c4c4b", 2); 

$wetfloor -> createImage("testbild.jpg", 90); 

?> 

<html> 
<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<title>Australien 2010</title> 
<link rel="stylesheet" type="text/css" href="css/imagegallery.css" /> 
</head> 
<body> 
<div id="imagegallery"> 
<img src="testbild.jpg" title="Australien 2010" alt="Australien 2010" /> 
</div> 
</body> 
</html>





wetfloor-effect.php

Hier sehen Sie noch die vollständige Klasse für die Erzeugung des Vorschaubildes und des Effekts.

<?php

/**
 * Create wet floor effect
 * 
 * @author SELFPHP OHG
 * @copyright 2009, SELFPHP OHG
 * @license BSD License
 * @link http://www.selfphp.de 
 * 
 */

class WetFloorEffect {
    
    
/**
     * @var array Images
     */
    
private $images    =    array();
    
    
/**
     * @var Integer Rahmen um Grafik
     */
    
private $imgBorder    =    0;
    
    
/**
     * @var Integer Abstand zwischen den einzelnen Bilder
     */
    
private $imgPadding    =    0;
    
    
/**
     * @var Integer Bildbreite
     */
    
private $imgWidth    =    0;
    
    
/**
     * @var Integer Bildhöhe
     */
    
private $imgHeight    =    0;
    
    
/**
     * @var Array Farbe
     */
    
private $imgRGB    =    array();
    
    
/**
     * @var Image Temp Image
     */
    
private $tempImage    NULL;
    
    
    
/**
      * Bilder festlegen  
      *  
      * @param    array    $img    Ein Array mit den Pfad zu den Bildern
      * 
      */ 
    
public function setimages$img = array( NULL ) ){
        
        unset ( 
$this->images );
        
        for ( 
$i 0$i count$img ); $i++ ) {
        
            if ( 
file_exists$img[$i] ) )
                
$this->images[] = $img[$i];
            
        }
        
    }
    
    
/**
      * Bild-Optionen festlegen  
      *  
      * @param    integer    $border           Rahmenbreite
      * @param    integer    $padding          Abstand zwischen den Bildern
      * @param    integer    $width            Bildbreite
      * @param    integer    $height           Bildhöhe
      * @param    string     $backgroundColor  Hintergrundfarbe
      * 
      */ 
    
public function setEnvironment$border 10$padding 5$width 200$height 100$backgroundColor "ffffff"){
        
        
$this->imgBorder $border;
        
        
$this->imgPadding $padding;
        
        
$this->imgWidth $width;
        
        
$this->imgHeight $height;
        
        
$this->imgRGB['r'] = hexdecsubstr$backgroundColor0) ); 
        
$this->imgRGB['g'] = hexdecsubstr$backgroundColor2) ); 
        
$this->imgRGB['b'] = hexdecsubstr$backgroundColor4) ); 
        
    }
    
    
/**
      * Effekt erstellen  
      *  
      */ 
    
public function createWetFloor(){
        
        
$this->tempImage imagecreatetruecolor$this->imgWidth$this->imgHeight ); 
        
        
$color imagecolorallocate($this->tempImage$this->imgRGB['r'], $this->imgRGB['g'], $this->imgRGB['b']); 
        
        
imagefill($this->tempImage00$color); 
        
        
$picsCount count$this->images );
        
        if ( 
$picsCount == )
            return 
false;
            
        
$widthPic = ($this->imgWidth - (( $this->imgBorder 2) + (( $picsCount 1) * $this->imgPadding))) / $picsCount;
        
$heightPic = ($this->imgHeight - (( $this->imgBorder 2))) - 60;
        
        
$left $this->imgBorder;
        
        for ( 
$i 0$i $picsCount$i++ ){
            
            
$tempImage $this->createThumbnail$this->images[$i], $widthPic$heightPic);
            
            
$tempImage $this->reflection($tempImage);
            
            
$simgx imagesx($tempImage);
            
$simgy imagesy($tempImage);
        
            
imagecopyresampled$this->tempImage$tempImage$left$this->imgBorder00$simgx$simgy$simgx$simgy);
            
            
$left += $widthPic $this->imgPadding;
            
        }
        
        return 
true;
    }
    
    
/**
      * Spiegelung erstellen  
      *  
      */ 
    
private function reflection $image ) {
        
        
$imageX imagesx$image );
        
$imageY imagesy$image );
        
        
$gradient round$imageY 0.55 ) - $this->imgBorder;
       
        
$imageBack imagecreatetruecolor$imageX$imageY $gradient );
        
        
$color imagecolorallocate$imageBack$this->imgRGB['r'], $this->imgRGB['g'], $this->imgRGB['b'] );
        
        
imagefill$imageBack00$color );
        
        
imagecopy$imageBack$image0000$imageX$imageY );
                       
        
$flipImage imagecreate$imageX$imageY );
        
        for ( 
$y 0$y $imageY$y++ ) {
            
            
imagecopy$flipImage$image0$y0$imageY $y 1$imageX);
            
        }
                
        
imagecopy($imageBack$flipImage0$imageY00$imageX$imageY);

        
        
$alpha 70 / ( $gradient );
        
        for ( 
$i 0$i $gradient$i++ ) {
            
            if (
$i == 0)
                
$col imagecolorallocatealpha$imageBack$this->imgRGB['r'], $this->imgRGB['g'], $this->imgRGB['b'], );
            else
                
$col imagecolorallocatealpha$imageBack$this->imgRGB['r'], $this->imgRGB['g'], $this->imgRGB['b'], 70 $i $alpha );
            
                
imageline$imageBack0$imageY $i$imageX$imageY $i$col );
                
        }

        return 
$imageBack;
        
    }
    
    
/**
      * Text erstellen  
      * 
      * @param    string     $text       Der zu zeichnende Text
      * @param    string     $textColor  Schriftfarbe
      * @param    string     $size       Schriftgröße
      *  
      */   
    
public function createText$text ""$textColor "ffffff"$size 4) {
        
        
$r hexdecsubstr$textColor0) ); 
        
$g hexdecsubstr$textColor2) ); 
        
$b hexdecsubstr$textColor4) ); 

        
$farbe_b imagecolorallocate $this->tempImage$r$g$b );

        
imagestring $this->tempImage$size10$this->imgHeight 20$text$farbe_b );

    }
    
    
/** 
     * Thumbnail erstellen 
     */ 
    
private function createThumbnail$imgSource NULL$width$height ){ 
     
        
$info getimagesize$imgSource ); 
         
        if ( 
$info[2] == ){ 
            
// GIF 
            
$image imagecreatefromgif$imgSource ); 
        } 
        elseif ( 
$info[2] == ){ 
            
// JPG 
            
$image imagecreatefromjpeg$imgSource ); 
        } 
        elseif ( 
$info[2] == ){ 
            
// PNG 
            
$image imagecreatefrompng$imgSource ); 
        } 
        else{ 
            
$image NULL
        } 
         
        if ( 
$image !== Null ){ 
             
            
$imageNew imagecreatetruecolor$width$height ); 
             
            
imagecopyresampled$imageNew$image0000$width,$height$info[0], $info[1]); 
                         
        } 
        
        return 
$imageNew;
             
    } 
    
    
     
/**
      * Bild speichern  
      *  
      * @param    string    $filedestination    Pfad für neue Datei 
      * 
      * @param    integer   $compress           Komprimierung
      *  
      */ 
    
public function createImage$filedestination NULL$compress 85){ 
         
        
imagejpeg($this->tempImage$filedestination$compress);    
                 
    } 
    
    
    
public function __deconstruct() {
        
        
imagedestroy$this->tempImage ); 
        
    }
        
}

?>





Download
WetFloorEffectScroll.zip






 




:: Premium-Partner ::

Webhosting/Serverlösungen


Premium-Partner LeaseWeb Germany GmbH
Premium-Partner MECO Systemhaus GmbH & Co. KG
Premium-Partner PSW GROUP GmbH & Co. KG
Premium-Partner BPI-Systeme
Premium-Partner Pixel X
Premium-Partner
 

:: SELFPHP Sponsoren ::


DM Solutions
Microsoft Deutschland GmbH
Sedo - Bei uns wird PHP großgeschrieben
hostfactory.ch - OptimaNet Schweiz AG
ZEND - The PHP Company
Kaspersky Labs
HighText iBusiness
SELFPHP Sponsoren
 

Qozido


© 2001-2013 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt