Вход Регистрация
Файл: core/cuctema/function/create_screen.php
Строк: 42
<?
function create_screen($file, $path, $w=128, $h=128, $dop, $need_name=NULL)
{
if (
is_file($file))
{
$movie=@new ffmpeg_movie($file);
if(
$imgc=@imagecreatefromstring(file_get_contents($file)))
{
$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);
imagedestroy($imgc);
if (
$need_name==NULL)$name = $w."-".$h."_".$dop."screen.png";
else 
$name = $need_name;
imagepng($screen, $path.$name);
imagedestroy($screen);
}
elseif(
$movie)
{
$k_frames=$movie->getFrameCount(); //к-тво кадров
for($kp=1;$kp<=60;$kp++) //выбираем случайный кадр
{
$image=@$movie->getFrame($kp);
if(
$image)$show_img=$image->toGDImage(); //если кадр в нормальном состоянии, то выбираем его для дальнейшей работы
}
if(@
$show_img)
{
$imgc=$show_img;
$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); // создаем изображение
$black = imagecolorallocate ($screen, 0, 0, 0); // и предаем ему черного фона
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y); // налаживаем на него кадр
imagedestroy($imgc);
$name = rand(12345,67890)."screen.png";
imagepng($screen, $path.$name);
imagedestroy($screen);

}
}
else 
$name = NULL;
}
else 
$name = NULL;
if (!isset(
$name))$name = NULL;
return 
$name;
}
?>
Онлайн: 2
Реклама