diff options
author | Thomas Citharel <tcit@tcit.fr> | 2022-05-16 19:45:17 +0200 |
---|---|---|
committer | Thomas Citharel <tcit@tcit.fr> | 2022-05-16 20:10:27 +0200 |
commit | b6dd2e3318f869f5abad1bcbce7458f2ae2a1c59 (patch) | |
tree | bbc7ff8aeea8c17c204667823f77bd55103bc9bf /lib/Service/ImageResizer.php | |
parent | 938bf0ca100b110176cfff1fe3a1a34555e3b811 (diff) |
Resize maximum dimensions for pictures coming from SocialApiService
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Diffstat (limited to 'lib/Service/ImageResizer.php')
-rw-r--r-- | lib/Service/ImageResizer.php | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/lib/Service/ImageResizer.php b/lib/Service/ImageResizer.php new file mode 100644 index 00000000..10581d09 --- /dev/null +++ b/lib/Service/ImageResizer.php @@ -0,0 +1,50 @@ +<?php + +declare(strict_types=1); + +/** + * @copyright Copyright (c) 2022 Thomas Citharel <nextcloud@tcit.fr> + * + * @author Thomas Citharel <nextcloud@tcit.fr> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\Contacts\Service; + +use OCP\Image; + +class ImageResizer { + public const RESIZE_MAX_X = 256; + public const RESIZE_MAX_Y = 256; + + /** + * @param string $socialData + * @return null|string + */ + public function resizeImage(string $socialData) { + $image = new Image(); + + $image->loadFromData($socialData); + + if ($image->valid()) { + $image->scaleDownToFit(self::RESIZE_MAX_X, self::RESIZE_MAX_Y); + return $image->data(); + } + return null; + } +} |