Вход Регистрация
Файл: xmyx.ru/sys/fnc/create_preview.php
Строк: 36
<?
function create_preview_from_resource($imgc$w$h) {
    if (!
is_resource($imgc) || $w == || $h == 0)
        return 
false;
    
$img_x=imagesx($imgc);
    
$img_y=imagesy($imgc);
    if (
$img_x==$img_y) {
        
$dstW=$w;
        
$dstH=$h;
    } elseif (
$img_x>$img_y) {
        
$prop=$img_x/$img_y;
        
$dstW=$w;
        
$dstH=ceil($dstW/$prop);
    } else {
        
$prop=$img_y/$img_x;
        
$dstH=$h;
        
$dstW=ceil($dstH/$prop);
    }
    
$screen=imagecreatetruecolor($dstW$dstH);
    
imagecopyresampled($screen$imgc0000$dstW$dstH$img_x$img_y);
    return 
$screen;
}

function 
create_preview($filePath$savePath$w 0$h 0) {
    if (!
is_file($filePath) || $w == || $h == 0)
        return 
false;
    if (
$imgc = @imagecreatefromstring(file_get_contents($filePath))) {
        
$screen create_preview_from_resource($imgc$w$h);
        
imagedestroy($imgc);
        if (!
imagepng($screen$savePath)) {
            
imagedestroy($screen);
            return 
false;
        }
        
imagedestroy($screen);
        return 
true;
    }
    if (
class_exists('ffmpeg_movie') && @$movie = new ffmpeg_movie($filePath)) {
        
$frame_number rand(1$movie -> getFrameCount());
        
$videPreviewFrameNum $frame_number;
        
$frame $movie -> getFrame($frame_number);
        if (!
$frame)
            return 
false;
        
$imgc $frame -> toGDImage();
        
$screen create_preview_from_resource($imgc$w$h);
        
imagedestroy($imgc);
        if (!
imagepng($screen$savePath)) {
            
imagedestroy($screen);
            return 
false;
        }
        
imagedestroy($screen);
        return 
true;
    }
    return 
false;
}
?>
Онлайн: 1
Реклама