|
|
@@ -550,6 +550,16 @@ class OC_Image implements \OCP\IImage { |
|
|
|
* @return bool|resource An image resource or false on error |
|
|
|
*/ |
|
|
|
public function loadFromFile($imagePath = false) { |
|
|
|
try { |
|
|
|
// detect if it is a path or maybe the images as string |
|
|
|
// needed because the constructor iterates over all load* methods |
|
|
|
$result = @realpath($imagePath); |
|
|
|
if ($result === false) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
} catch (Error $e) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
// exif_imagetype throws "read error!" if file is less than 12 byte |
|
|
|
if (!@is_file($imagePath) || !file_exists($imagePath) || filesize($imagePath) < 12 || !is_readable($imagePath)) { |
|
|
|
return false; |
|
|
@@ -873,7 +883,7 @@ class OC_Image implements \OCP\IImage { |
|
|
|
$newHeight = $maxSize; |
|
|
|
} |
|
|
|
|
|
|
|
$this->preciseResize(round($newWidth), round($newHeight)); |
|
|
|
$this->preciseResize((int)round($newWidth), (int)round($newHeight)); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
@@ -882,7 +892,7 @@ class OC_Image implements \OCP\IImage { |
|
|
|
* @param int $height |
|
|
|
* @return bool |
|
|
|
*/ |
|
|
|
public function preciseResize($width, $height) { |
|
|
|
public function preciseResize(int $width, int $height): bool { |
|
|
|
if (!$this->valid()) { |
|
|
|
$this->logger->error(__METHOD__ . '(): No image loaded', array('app' => 'core')); |
|
|
|
return false; |
|
|
@@ -982,7 +992,7 @@ class OC_Image implements \OCP\IImage { |
|
|
|
* @param int $h Height |
|
|
|
* @return bool for success or failure |
|
|
|
*/ |
|
|
|
public function crop($x, $y, $w, $h) { |
|
|
|
public function crop(int $x, int $y, int $w, int $h): bool { |
|
|
|
if (!$this->valid()) { |
|
|
|
$this->logger->error(__METHOD__ . '(): No image loaded', array('app' => 'core')); |
|
|
|
return false; |
|
|
@@ -1033,7 +1043,7 @@ class OC_Image implements \OCP\IImage { |
|
|
|
$newWidth = min($maxWidth, $ratio * $maxHeight); |
|
|
|
$newHeight = min($maxHeight, $maxWidth / $ratio); |
|
|
|
|
|
|
|
$this->preciseResize(round($newWidth), round($newHeight)); |
|
|
|
$this->preciseResize((int)round($newWidth), (int)round($newHeight)); |
|
|
|
return true; |
|
|
|
} |
|
|
|
|