[StoreRemoteMedia] Gracefully recover from poorly encoded images
This commit is contained in:
parent
edc9fd203d
commit
5b23781e68
@ -300,20 +300,25 @@ class StoreRemoteMediaPlugin extends Plugin
|
|||||||
|
|
||||||
// If the image is not of the desired size, resize it
|
// If the image is not of the desired size, resize it
|
||||||
if (!$this->store_original && $this->crop && ($info[0] > $this->thumbnail_width || $info[1] > $this->thumbnail_height)) {
|
if (!$this->store_original && $this->crop && ($info[0] > $this->thumbnail_width || $info[1] > $this->thumbnail_height)) {
|
||||||
// Temporary object, not stored in DB
|
try {
|
||||||
$img = new ImageFile(-1, $fullpath);
|
// Temporary object, not stored in DB
|
||||||
list($width, $height, $x, $y, $w, $h) = $img->scaleToFit($this->thumbnail_width, $this->thumbnail_height, $this->crop);
|
$img = new ImageFile(-1, $fullpath);
|
||||||
|
list($width, $height, $x, $y, $w, $h) = $img->scaleToFit($this->thumbnail_width, $this->thumbnail_height, $this->crop);
|
||||||
|
|
||||||
// The boundary box for our resizing
|
// The boundary box for our resizing
|
||||||
$box = [
|
$box = [
|
||||||
'width' => $width, 'height' => $height,
|
'width' => $width, 'height' => $height,
|
||||||
'x' => $x, 'y' => $y,
|
'x' => $x, 'y' => $y,
|
||||||
'w' => $w, 'h' => $h,
|
'w' => $w, 'h' => $h,
|
||||||
];
|
];
|
||||||
|
|
||||||
$width = $box['width'];
|
$width = $box['width'];
|
||||||
$height = $box['height'];
|
$height = $box['height'];
|
||||||
$img->resizeTo($fullpath, $box);
|
$img->resizeTo($fullpath, $box);
|
||||||
|
} catch (\Intervention\Image\Exception\NotReadableException $e) {
|
||||||
|
common_log(LOG_ERR, "StoreRemoteMediaPlugin::storeRemoteThumbnail was unable to decode image with Intervention: $e");
|
||||||
|
// No need to interrupt processing
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new AlreadyFulfilledException('A thumbnail seems to already exist for remote file' .
|
throw new AlreadyFulfilledException('A thumbnail seems to already exist for remote file' .
|
||||||
|
Loading…
Reference in New Issue
Block a user