Вход Регистрация
Файл: sys/inc/gif_resize.php
Строк: 27
<?php
function gif_resize($string$x$y)
{
    global 
$sess;
    include_once 
H.'sys/inc/gifdecoder.php';
    include_once 
H.'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[]=H."sys/tmp/frame_$sess.$i.gif";
        
file_put_contents(H."sys/tmp/frame_$sess.$i.gif"$arr[$i]);
        @
chmod(H."sys/tmp/frame_$sess.$i.gif"0777);
    }

    for (
$i=0;$i<count($arr);$i++) {
        
$imgc[$i]=imagecreatefromgif(H."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], H."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(H."sys/tmp/frame_$sess.$i.gif");
    }

    return (
$gif->GetAnimation());
}
Онлайн: 0
Реклама