Teil von  SELFPHP   Teil von  Code Snippets / PHP / Images
Professional CronJob-Service

Suche

:: Anbieterverzeichnis ::

Globale Branchen

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

 

:: SELFPHP Forum ::

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

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 
 
Motion-Effekt für Vorschaubilder erstellen

SELFPHP ist Shopware Solution Partner
Shopware ist ein vielfach ausgezeichnetes Onlineshop-System der shopware AG, das auf PHP. Zend Framework und SQL basiert.
SELFPHP unterstützt Sie als Shopware Solution Partner bei der Konzeption, Programmierung und Realisierung Ihres Onlineshops und passt Shopware bei Bedarf an Ihre Unternehmensbedürfnisse an. Weitere Informationen




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 2014, 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

Profihost AG weitere Premium-Partner
 

:: SELFPHP Sponsor ::

ionCube Ltd. weitere Sponsoren
 


:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Webhosting/Serverlösungen

Suchen Sie den für Sie passenden IT-Dienstleister für Ihr Webhosting-Paket oder Ihre Serverlösung?

Sie sind nur ein paar Klicks davon entfernt!


 

Ausgewählter Tipp im Bereich PHP-Skripte


Tage zwischen zwei Datumsangaben ermitteln

Weitere interessante Beispiele aus dem SELFPHP Kochbuch finden Sie im Bereich PHP-Skripte
 

SELFPHP Code Snippet


Umgang mit AJAX und PHP ohne ein JavaScript Framework

Weitere interessante Code Snippets finden Sie auf SELFPHP im Bereich PHP Code Snippets
 
© 2001-2019 E-Mail SELFPHP Inh. Damir Enseleit, info@selfphp.deImpressumKontakt