Вход Регистрация
Файл: sys/fnc/create_preview.php
Строк: 36
<?
function create_preview_from_resource($imgc, $w, $h) {
    if (!
is_resource($imgc) || $w == 0 || $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, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
    return 
$screen;
}

function 
create_preview($filePath, $savePath, $w = 0, $h = 0) {
    if (!
is_file($filePath) || $w == 0 || $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
Реклама