add imagic

This commit is contained in:
Jurgis Sakalauskas
2025-01-11 12:34:31 +02:00
parent f44d21a9be
commit 3e6f9ba0c2
3 changed files with 27 additions and 6 deletions
+7 -2
View File
@@ -10,9 +10,14 @@ ARG UID
RUN if [ -z "${UID}" ] ; then echo UID argument is NOT provided ; else usermod --non-unique --uid 1000 www-data ; fi RUN if [ -z "${UID}" ] ; then echo UID argument is NOT provided ; else usermod --non-unique --uid 1000 www-data ; fi
# enable mod_rewrite for laravel routing to work (.htaccess) # enable mod_rewrite for laravel routing to work (.htaccess)
RUN a2enmod rewrite
RUN apt-get update && apt-get install -y git zip unzip RUN a2enmod rewrite \
&& apt-get update \
&& apt-get install --assume-yes --no-install-recommends --quiet \
git zip unzip build-essential libmagickwand-dev \
&& apt-get clean all \
&& pecl install imagick \
&& docker-php-ext-enable imagick
COPY . /var/www/html COPY . /var/www/html
COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer
+18 -3
View File
@@ -17,12 +17,27 @@ class ImageService
$imageData = base64_decode($base64ImageData); $imageData = base64_decode($base64ImageData);
$ext = explode('/', $mimeType)[1]; $ext = explode('/', $mimeType)[1];
Storage::put('public/images/' . $imageId . '.' . $ext , $imageData); $imagePath = 'public/images/' . $imageId . '.' . $ext;
$relativePath = Storage::url('public/images/' . $imageId . '.png'); Storage::put($imagePath , $imageData);
$relativeUrl = Storage::url($imagePath);
$filesystemPath = Storage::path($imagePath);
$resolution = [];
try {
$image = new \Imagick($filesystemPath);
$resolution = $image->getImageGeometry();
} catch (\ImagickException $e) {
//do nothing
}
// resize to thumbnail
// $image->thumbnailImage(200, 200);
// $thumbPath = 'public/images/' . $imageId . '-thumb.' . $ext;
// Storage::put($thumbPath , $image->getImageBlob());
return [ return [
'url' => asset($relativePath), 'url' => asset($relativeUrl),
'id' => $imageId, 'id' => $imageId,
...$resolution,
// todo - size, width, height, thumb, etc // todo - size, width, height, thumb, etc
]; ];
} }
+2 -1
View File
@@ -11,7 +11,8 @@
"laravel/framework": "^10.10", "laravel/framework": "^10.10",
"laravel/sanctum": "^3.3", "laravel/sanctum": "^3.3",
"laravel/tinker": "^2.8", "laravel/tinker": "^2.8",
"ext-curl": "*" "ext-curl": "*",
"ext-imagick": "*"
}, },
"require-dev": { "require-dev": {
"fakerphp/faker": "^1.9.1", "fakerphp/faker": "^1.9.1",