mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-12-23 08:14:10 +00:00
Update thumbnail logic
This commit is contained in:
parent
4794182334
commit
84d1e3b731
1 changed files with 32 additions and 24 deletions
|
@ -13,6 +13,10 @@ class Image
|
||||||
public $portrait;
|
public $portrait;
|
||||||
public $thumbnail;
|
public $thumbnail;
|
||||||
public $orientation;
|
public $orientation;
|
||||||
|
public $acceptedMimes = [
|
||||||
|
'image/png',
|
||||||
|
'image/jpeg',
|
||||||
|
];
|
||||||
|
|
||||||
public function __construct()
|
public function __construct()
|
||||||
{
|
{
|
||||||
|
@ -22,27 +26,27 @@ class Image
|
||||||
$this->landscape = $this->orientations()['landscape'];
|
$this->landscape = $this->orientations()['landscape'];
|
||||||
$this->portrait = $this->orientations()['portrait'];
|
$this->portrait = $this->orientations()['portrait'];
|
||||||
$this->thumbnail = [
|
$this->thumbnail = [
|
||||||
'width' => 293,
|
'width' => 640,
|
||||||
'height' => 293,
|
'height' => 640,
|
||||||
];
|
];
|
||||||
$this->orientation = null;
|
$this->orientation = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function orientations()
|
public function orientations()
|
||||||
{
|
{
|
||||||
return [
|
return [
|
||||||
'square' => [
|
'square' => [
|
||||||
'width' => 1080,
|
'width' => 1080,
|
||||||
'height' => 1080,
|
'height' => 1080,
|
||||||
],
|
],
|
||||||
'landscape' => [
|
'landscape' => [
|
||||||
'width' => 1920,
|
'width' => 1920,
|
||||||
'height' => 1080,
|
'height' => 1080,
|
||||||
],
|
],
|
||||||
'portrait' => [
|
'portrait' => [
|
||||||
'width' => 1080,
|
'width' => 1080,
|
||||||
'height' => 1350,
|
'height' => 1350,
|
||||||
],
|
],
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,9 +57,9 @@ class Image
|
||||||
}
|
}
|
||||||
if ($thumbnail) {
|
if ($thumbnail) {
|
||||||
return [
|
return [
|
||||||
'dimensions' => $this->thumbnail,
|
'dimensions' => $this->thumbnail,
|
||||||
'orientation' => 'thumbnail',
|
'orientation' => 'thumbnail',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
list($width, $height) = getimagesize($mediaPath);
|
list($width, $height) = getimagesize($mediaPath);
|
||||||
|
@ -98,18 +102,22 @@ class Image
|
||||||
{
|
{
|
||||||
$path = $media->media_path;
|
$path = $media->media_path;
|
||||||
$file = storage_path('app/'.$path);
|
$file = storage_path('app/'.$path);
|
||||||
|
if (!in_array($media->mime, $this->acceptedMimes)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
$ratio = $this->getAspectRatio($file, $thumbnail);
|
$ratio = $this->getAspectRatio($file, $thumbnail);
|
||||||
$aspect = $ratio['dimensions'];
|
$aspect = $ratio['dimensions'];
|
||||||
$orientation = $ratio['orientation'];
|
$orientation = $ratio['orientation'];
|
||||||
if ($media->mime === 'image/gif' && !$thumbnail) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$img = Intervention::make($file)->orientate();
|
$img = Intervention::make($file)->orientate();
|
||||||
$img->resize($aspect['width'], $aspect['height'], function ($constraint) {
|
if($thumbnail) {
|
||||||
$constraint->aspectRatio();
|
$img->crop($aspect['width'], $aspect['height']);
|
||||||
});
|
} else {
|
||||||
|
$img->resize($aspect['width'], $aspect['height'], function ($constraint) {
|
||||||
|
$constraint->aspectRatio();
|
||||||
|
});
|
||||||
|
}
|
||||||
$converted = $this->setBaseName($path, $thumbnail, $img->extension);
|
$converted = $this->setBaseName($path, $thumbnail, $img->extension);
|
||||||
$newPath = storage_path('app/'.$converted['path']);
|
$newPath = storage_path('app/'.$converted['path']);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue