Вход Регистрация
Файл: sys/inc/gif_resize.php
Строк: 27
<?php

function gif_resize$string$x$y )
{
    global 
$sess;
    include_once 
'sys/inc/gifdecoder.php';
    include_once 
'sys/inc/gifencoder.php';
    
$giff  = new GIFDecoder$string );
    
$arr   $giff->GIFGetFrames(); // разрезание gif анимации на отдельные картинки
    
$dly   $giff->GIFGetDelays();
    
$imgs  imagecreatefromstring$string );
    
$img_x imagesx$imgs );
    
$img_y imagesy$imgs );
    if ( 
$img_x == $img_y ) {
        
$dstW $x// ширина
        
$dstH $y// высота
    
} elseif ( $img_x $img_y ) {
        
$prop $img_x $img_y;
        
$dstW $x;
        
$dstH ceil$dstW $prop );
    } else {
        
$prop $img_y $img_x;
        
$dstH $y;
        
$dstW ceil$dstH $prop );
    }
    for ( 
$i 0$i count$arr ); $i++ ) {
        
$frames[] = "sys/tmp/frame_$sess.$i.gif";
        
file_put_contents"sys/tmp/frame_$sess.$i.gif"$arr[$i] );
        @
chmod"sys/tmp/frame_$sess.$i.gif"0777 );
    }
    for ( 
$i 0$i count$arr ); $i++ ) {
        
$imgc[$i]      = imagecreatefromgif"sys/tmp/frame_$sess.$i.gif" );
        
$frame_img[$i] = imagecreatetruecolor$dstW$dstH );
        
imagecopyresampled$frame_img[$i], $imgc[$i], 0000$dstW$dstH$img_x$img_y );
        
imagedestroy$imgc[$i] );
        
imagegif$frame_img[$i], "sys/tmp/frame_$sess.$i.gif" );
        
//@chmod(H."sys/tmp/frame_$sess.$i.gif",0777);
        
imagedestroy$frame_img[$i] );
    }
    
$gif = @new GIFEncoder$frames$dly02000"url" );
    for ( 
$i 0$i count$arr ); $i++ ) {
        
unlink"sys/tmp/frame_$sess.$i.gif" );
    }
    return ( 
$gif->GetAnimation() );
}
Онлайн: 0
Реклама