%PDF- %PDF-
| Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Helper/Image/ |
| Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Helper/Image/AutoImageHelper.php |
<?php
/*
* @copyright 2023 Passwords App
*
* @author Marius David Wieschollek
* @license AGPL-3.0
*
* This file is part of the Passwords App
* created by Marius David Wieschollek.
*/
namespace OCA\Passwords\Helper\Image;
use OCA\Passwords\Services\ConfigurationService;
use OCA\Passwords\Services\HelperService;
class AutoImageHelper extends AbstractImageHelper {
protected AbstractImageHelper $imageHelper;
public function __construct(
protected GdHelper $gdHelper,
protected ImagickHelper $imagickHelper,
protected ImaginaryHelper $imaginaryHelper,
ConfigurationService $config
) {
parent::__construct($config);
}
public function advancedResizeImage($image, int $minWidth, int $minHeight, int $maxWidth, int $maxHeight) {
return $this->getImageHelper()->advancedResizeImage($image, $minWidth, $minHeight, $maxWidth, $maxHeight);
}
public function simpleResizeImage($image, int $size) {
return $this->getImageHelper()->simpleResizeImage($image, $size);
}
public function cropImageRectangular($image) {
return $this->getImageHelper()->cropImageRectangular($image);
}
public function getImageFromBlob($imageBlob) {
return $this->getImageHelper()->getImageFromBlob($imageBlob);
}
public function destroyImage($image): bool {
return $this->getImageHelper()->destroyImage($image);
}
public function exportJpeg($image): string {
return $this->getImageHelper()->exportJpeg($image);
}
public function exportPng($image): string {
return $this->getImageHelper()->exportPng($image);
}
public function supportsFormat(string $format): bool {
return $this->getImageHelper()->supportsFormat($format);
}
public function convertIcoToPng($data): string {
return $this->getImageHelper()->convertIcoToPng($data);
}
public function isAvailable(): bool {
return $this->gdHelper->isAvailable() ||
$this->imagickHelper->isAvailable() ||
$this->imaginaryHelper->isAvailable();
}
public function getRealImageHelperName(): string {
return match (get_class($this->getImageHelper())) {
ImagickHelper::class => HelperService::IMAGES_IMAGICK,
GdHelper::class => HelperService::IMAGES_GDLIB,
ImaginaryHelper::class => HelperService::IMAGES_IMAGINARY,
};
}
protected function getImageHelper(): AbstractImageHelper {
if(!isset($this->imageHelper)) {
if($this->imaginaryHelper->isAvailable()) {
$this->imageHelper = $this->imaginaryHelper;
} else if($this->imagickHelper->isAvailable()) {
$this->imageHelper = $this->imagickHelper;
} else {
$this->imageHelper = $this->gdHelper;
}
}
return $this->imageHelper;
}
}