aw:image

acidWEB acid-vega

Kleine PHP Image Funtions Sammlung

Ein paar Funtktionen die sich über die Jahre bewert haben um per GDlib z.b. Thumbnails zu erstellen.
Im unten downloadbaren zip ist auch ein Bsp. drin wie man die bilder cachen kann.


<?php
function imageCreateFromAny($filepath)
    {
    
$type exif_imagetype($filepath);
    
$allowedTypes = array(
        
1,  // gif
        
2,  // jpg
        
3,  // png
    
);
    if (!
in_array($type$allowedTypes))
        {return 
false;}
    switch (
$type)
        {
        case 
:$im imageCreateFromGif($filepath);
        break;
        case 
:$im imageCreateFromJpeg($filepath);
        break;
        case 
:$im imageCreateFromPng($filepath);
        break;
        }   
    return 
$im
    } 
?>

imageCreateFromAny()

Erstellt aus GIF,JPEG ODER PNG eine php image resource


<?php
function image_get($file,$fromstring=FALSE)
    {
    if(
$fromstring===TRUE)
        {return @
imagecreatefromstring(file_get_contents($file));}
    else
        {return 
imageCreateFromAny($file);} 
?>

image_get(()

kann auf 2 verschiedene arten ein bild laden, entweder über die funktion imageCreateFromAny() oder was langsamer ist imagecreatefromstring()


<?php 
function image_crop($image,$thumb_width 192,$thumb_height 120)
    {
    
$width imagesx($image);
    
$height imagesy($image);
    
$original_aspect $width $height;
    
$thumb_aspect $thumb_width $thumb_height;
    if ( 
$original_aspect >= $thumb_aspect )
        {
        
$new_height $thumb_height;
        
$new_width $width / ($height $thumb_height);
        }
    else
        {
        
$new_width $thumb_width;
        
$new_height $height / ($width $thumb_width);
        }
    
$thumb imagecreatetruecolor$thumb_width$thumb_height );
    
imagecopyresampled($thumb,
                   
$image,
                   
- ($new_width $thumb_width) / 2
                   
- ($new_height $thumb_height) / 2,
                   
00,
                   
$new_width$new_height,
                   
$width$height);
    return 
$thumb;
    } 
?>

image_crop()

Ändert die Größe des Bildes und schneidet wenn nötig die zu großen teile ab.


<?php 
function image_output($image,$type="jpeg",$destination=NULL,$quality=60)
    {
    
ob_start();
    switch (
$type
        {
        case 
"gif":
            
ImageGif($image,$destination);
        break;

        case 
"png":
            
$pngQuality = ($quality 100) / 11.111111;
            
$pngQuality round(abs($pngQuality));
            
ImagePng($image,$destination,$pngQuality);
        break;

        case 
"jpeg":
        case 
"jpg" :
            
ImageJpeg($image,$destination,$quality);
        break;
            }
    
$img=ob_get_clean();
    
imagedestroy($image);
    
header("Content-Type: image/$type");
    if(!empty(
$destination))
        {
readfile($destination);}
    else
        {
        
header("Content-Length: ".strlen($img));
        print 
$img;
        }
    exit;
    } 
?>

image_output()

Nimmt die image resource und gibt sie wieder aus, wenn destination angegeben ist wird das neu erstellte bild dort als datei abgelegt.


Funktionierendes bsp.: Download



Kommentare