Update from a long time
This commit is contained in:
80
php/thumbnail.php
Normal file
80
php/thumbnail.php
Normal file
@ -0,0 +1,80 @@
|
||||
<?php
|
||||
|
||||
#error_reporting(E_ALL);
|
||||
#ini_set('display_errors', TRUE);
|
||||
#ini_set('display_startup_errors', TRUE);
|
||||
|
||||
ini_set('display_errors', FALSE);
|
||||
ini_set('display_startup_errors', FALSE);
|
||||
|
||||
include 'fonction.php';
|
||||
|
||||
require '/var/www/html/projects/vendor/autoload.php';
|
||||
|
||||
$root = $_SERVER["DOCUMENT_ROOT"];
|
||||
|
||||
$directory = "/uploads/";
|
||||
|
||||
if(isset($_GET["file"])) {
|
||||
$file = $root.urldecode($_GET["file"]);
|
||||
$size = isset($_GET["size"]) ? $_GET["size"] : 100;
|
||||
if(file_exists($file)) {
|
||||
switch (font_type($file)) {
|
||||
case 'file-image':
|
||||
echo getThumbnail($file, $size);
|
||||
break;
|
||||
case 'file-video':
|
||||
$thumb = createThumbnail($file, 10);
|
||||
echo getThumbnail($thumb, $size);
|
||||
break;
|
||||
case 'file-pdf':
|
||||
// code...
|
||||
break;
|
||||
default:
|
||||
echo "Not image";
|
||||
break;
|
||||
|
||||
}
|
||||
exit();
|
||||
}
|
||||
else {
|
||||
header("HTTP/1.1 400 File not Found");
|
||||
echo $file." not Found";
|
||||
exit();
|
||||
}
|
||||
}
|
||||
|
||||
function createThumbnail(string $file, int $sec)
|
||||
{
|
||||
$thumbnail = '/tmp/thumbnail.png';
|
||||
|
||||
$ffmpeg = FFMpeg\FFMpeg::create();
|
||||
$video = $ffmpeg->open($file);
|
||||
$frame = $video->frame(FFMpeg\Coordinate\TimeCode::fromSeconds($sec));
|
||||
$frame->save($thumbnail);
|
||||
|
||||
return($thumbnail);
|
||||
}
|
||||
|
||||
|
||||
function getThumbnail(string $file, int $size)
|
||||
{
|
||||
|
||||
list($width, $height) = getimagesize($file);
|
||||
|
||||
// Create an Imagick object
|
||||
$imagick = new Imagick($file);
|
||||
|
||||
// Function to set the background color
|
||||
$imagick->setbackgroundcolor('rgb(0, 0, 0)');
|
||||
|
||||
// Use thumbnailImage function
|
||||
$imagick->thumbnailImage($width*$size/$height, $size, true, true);
|
||||
header("Content-Type: image/jpg");
|
||||
|
||||
// Display the output image
|
||||
echo $imagick->getImageBlob();
|
||||
|
||||
}
|
||||
|
||||
?>
|
Reference in New Issue
Block a user