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.   

 
 
Motion-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 Motion-Effekt versehen können. Die Klasse ist so konzipiert, dass Sie entweder nur die Vorschaubilder oder zusätzlich auch den Motion-Effekt generieren lassen können. Nachfolgend sehen Sie einige so erstellte Vorschaubilder mit einer abstufenden oder gleichbleibenden Transparenz.



Bild 1

gleichbleibende Transparenz (70% Deckung)
Bild 2

gleichbleibende Transparenz (30% Deckung)
Bild 3

abstufende Transparenz

Aufruf für die Erzeugung der vorherigen Beispiele:

Bild 1 - gleichbleibende Transparenz (70% Deckung):
$motion -> createMotion5"ffffff"false70 );

Bild 2 - gleichbleibende Transparenz (30% Deckung):
$motion -> createMotion5"ffffff"false30 );

Bild 3 - abstufende Transparenz:
$motion -> createMotion5"ffffff" );


Als Wert für den Motion-Effekt benötigt die Klasse die Anzahl der Linien (im Beispiel "5" für 5 Linien), die Hintergrundfarbe (im Beispiel "ffffff" für weiß), den optionalen Parameter für abstufende oder gleichbleibende Transparenz (true oder false) und zuletzt den optionalen Parameter für die Deckkraft (0-100 wenn der vorherige Parameter auf false gesetzt wird).


example.php

Nachfolgend sehen Sie den Zugriff auf die Klasse. Schon bei der Instanzierung der Klasse wird die Datei für das Vorschaubild und die neue Größe (Breite und Höhe) mit angegeben.

<?php

include_once("ImageManipulation.php");

$motion = new ImageManipulation"pictures/DSC_0233.png"150100 );

$motion -> createMotion5"ffffff"false70 );

$motion -> createImage"dsc-small.jpg" );

?>

<img src="dsc-small.jpg" />





ImageManipulation.php

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

<?php

/**
 * Image Manipulation
 * Motion-Effect
 * 
 * @author SELFPHP OHG
 * @copyright 2009, SELFPHP OHG
 * @license BSD License
 * @link http://www.selfphp.de 
 * 
 * Example 1:
 * $motion = new ImageManipulation( "pictures/DSC_0233.png", 150, 100 );
 * $motion -> createMotion( 5, "ffffff", false, 70 );
 * $motion -> createImage( "dsc-small.jpg" );
 * 
 * Example 2:
 * $motion = new ImageManipulation( "pictures/DSC_0233.png", 150, 100 );
 * $motion -> createMotion( 5, "ffffff" );
 * $motion -> createImage( "dsc-small.jpg" );
 * 
 */

class ImageManipulation {

    
/**
     * @var string Dateipfad Original-Bild
     */
    
private $resource NULL;
    
    
/**
     * @var image Thumbnail
     */
    
private $imageNew NULL;
    
    
/**
     * @var integer Breite Thumbnail
     */
    
private $widthNew NULL;
    
    
/**
     * @var integer Höhe Thumbnail
     */
    
private $heightNew NULL;

    
    
/*
     * Constructor 
     * 
     * @param    string    $resourceFile    Dateipfad Original-Bild
     * @param    integer    $width            Bildbreite Thumbnail
     * @param    integer    $height            Bildhöhe Thumbnail
     * 
     */
    
function __construct$resourceFile$width$height ) {
        
        if ( 
file_exists $resourceFile ) == TRUE ){
            
            
$this->resource $resourceFile;
            
            
$this->widthNew $width;
            
            
$this->heightNew $height;
            
            
$this->createThumbnail ();
            
        }
    
    }
    
    
/**
     * Thumbnail erstellen
     */
    
private function createThumbnail( ){
    
        
$info getimagesize$this->resource );
        
        if ( 
$info[2] == ){
            
// GIF
            
$image imagecreatefromgif$this->resource );
        }
        elseif ( 
$info[2] == ){
            
// JPG
            
$image imagecreatefromjpeg$this->resource );
        }
        elseif ( 
$info[2] == ){
            
// PNG
            
$image imagecreatefrompng$this->resource );
        }
        else{
            
$image NULL;
        }
        
        if ( 
$image !== Null ){
            
            
$this->imageNew imagecreatetruecolor$this->widthNew$this->heightNew );
            
            
imagecopyresampled$this->imageNew$image0000$this->widthNew
                            
$this->heightNew$info[0], $info[1]);
                        
        }
            
    }
    
    
/*
     * Motion-Effekt erstellen 
     * 
     * @param    integer    $lines      Anzahl der Linien für den Effekt
     * @param    string    $fillcolor  Hintergrundfarbe
     * @param    boolean    $effect     Motion-Effect mit abstufender Transparenz (true)
     * @param    integer    $effect     Gleichbleibende Transparenz(0-100) (wenn $effect = false)
     * 
     */
    
public function createMotion$lines$fillcolor$effect true$trans 70 ){
        
        
$stepHigh $this->heightNew - ($lines 2);
        
        
$stepWidth $this->widthNew - ($lines 2);
        
        
$r hexdecsubstr$fillcolor0) );
        
$g hexdecsubstr$fillcolor2) );
        
$b hexdecsubstr$fillcolor4) );
        
        
$image imagecreatetruecolor$this->widthNew$this->heightNew );
        
$color imagecolorallocate($image$r$g$b);
        
imagefill($image00$color);
        
        
imagecopyresampled$image$this->imageNew 0000$stepWidth$stepHigh
                        
$this->widthNew$this->heightNew);
        
imagecopyresampled$this->imageNew$image 0000,$this->widthNew
                        
$this->heightNew$this->widthNew$this->heightNew);
        
        for( 
$x 0$x $lines$x++ ){
            
            if ( 
$effect == true )
                
$opacity max(080-($x*(65 $lines)));
            else
                
$opacity $trans;
            
            for(
$y 0$y $stepHigh$y++)
                {
                
imagecopymerge($this->imageNew$image$stepWidth+(2*$x) + 1$y+(2*$x)+2
                                
$stepWidth -1$y+111$opacity);
                }
            for(
$y 0$y $stepWidth$y++)
                {
                
imagecopymerge($this->imageNew$image$y+(2*$x)+2,$stepHigh+(2*$x)+1$y+1,
                                
$stepHigh-1,  11$opacity);
                }
        }
        
        
imagedestroy$image );
        
    }
    
    
/*
     * Bild speichern 
     * 
     * @param    string    $filedestination    Pfad für neue Datei
     * 
     */
    
public function createImage$filedestination NULL){
        
        
imagejpeg($this->imageNew$filedestination85);    
        
    }
    
}

?>





Download
ImageManipulation.zip






 




:: Premium-Partner ::

Webhosting/Serverlösungen


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 ::


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

Qozido


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