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

function gif_resize($string$x$y) {
    global 
$sess;
    include_once 
'sys/classes/gifdecoder.slass.php';
    include_once 
'sys/classes/gifencoder.class.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());
}

?>
Онлайн: 1
Реклама