diff options
| author | Greg Roach <greg@subaqua.co.uk> | 2020-09-09 13:28:08 +0100 |
|---|---|---|
| committer | Greg Roach <greg@subaqua.co.uk> | 2020-09-15 07:43:50 +0100 |
| commit | 6577bfc3111b4789852b83f46e19d92c9b59921c (patch) | |
| tree | bab616d47df19a9b0a6f7e770f7eec19bf4b10f7 /app/Contracts | |
| parent | 2dce7b68a84a370c49b6a7aea7ec7f4a9b2b598f (diff) | |
| download | webtrees-6577bfc3111b4789852b83f46e19d92c9b59921c.tar.gz webtrees-6577bfc3111b4789852b83f46e19d92c9b59921c.tar.bz2 webtrees-6577bfc3111b4789852b83f46e19d92c9b59921c.zip | |
Remove league/glide. Use intervention/image directly.
Diffstat (limited to 'app/Contracts')
| -rw-r--r-- | app/Contracts/ImageFactoryInterface.php | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/app/Contracts/ImageFactoryInterface.php b/app/Contracts/ImageFactoryInterface.php new file mode 100644 index 0000000000..6dae6e1851 --- /dev/null +++ b/app/Contracts/ImageFactoryInterface.php @@ -0,0 +1,141 @@ +<?php + +/** + * webtrees: online genealogy + * Copyright (C) 2019 webtrees development team + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +declare(strict_types=1); + +namespace Fisharebest\Webtrees\Contracts; + +use Fisharebest\Webtrees\MediaFile; +use Intervention\Image\Image; +use League\Flysystem\FilesystemInterface; +use Psr\Http\Message\ResponseInterface; + +/** + * Make an image (from another image). + */ +interface ImageFactoryInterface +{ + /** + * Send the original file - either inline or as a download. + * + * @param FilesystemInterface $filesystem + * @param string $path + * @param bool $download + * + * @return ResponseInterface + */ + public function fileResponse(FilesystemInterface $filesystem, string $path, bool $download): ResponseInterface; + + /** + * Send the original file - either inline or as a download. + * + * @param FilesystemInterface $filesystem + * @param string $path + * @param int $width + * @param int $height + * @param string $fit + * + * @return ResponseInterface + */ + public function thumbnailResponse( + FilesystemInterface $filesystem, + string $path, + int $width, + int $height, + string $fit + ): ResponseInterface; + + /** + * Create a full-size version of an image. + * + * @param MediaFile $media_file + * @param bool $add_watermark + * @param bool $download + * + * @return ResponseInterface + */ + public function mediaFileResponse(MediaFile $media_file, bool $add_watermark, bool $download): ResponseInterface; + + /** + * Create a smaller version of an image. + * + * @param MediaFile $media_file + * @param int $width + * @param int $height + * @param string $fit + * @param bool $add_watermark + * + * @return ResponseInterface + */ + public function mediaFileThumbnailResponse( + MediaFile $media_file, + int $width, + int $height, + string $fit, + bool $add_watermark + ): ResponseInterface; + + /** + * Does a full-sized image need a watermark? + * + * @param MediaFile $media_file + * @param UserInterface $user + * + * @return bool + */ + public function fileNeedsWatermark(MediaFile $media_file, UserInterface $user): bool; + + /** + * Does a thumbnail image need a watermark? + * + * @param MediaFile $media_file + * @param UserInterface $user + * + * @return bool + */ + public function thumbnailNeedsWatermark(MediaFile $media_file, UserInterface $user): bool; + + /** + * Create a watermark image, perhaps specific to a media-file. + * + * @param int $width + * @param int $height + * @param MediaFile $media_file + * + * @return Image + */ + public function createWatermark(int $width, int $height, MediaFile $media_file): Image; + + /** + * Add a watermark to an image. + * + * @param Image $image + * @param Image $watermark + * + * @return Image + */ + public function addWatermark(Image $image, Image $watermark): Image; + + /** + * Send a replacement image, to replace one that could not be found or created. + * + * @param string $text HTTP status code or file extension + * + * @return ResponseInterface + */ + public function replacementImageResponse(string $text): ResponseInterface; +} |
