https://github.com/camelotproject/image-asset
Image management library & bundle based on GD to handle image thumbnails
https://github.com/camelotproject/image-asset
assets gd images jpg png svg symfony-bundle thumbnails webp
Last synced: 2 months ago
JSON representation
Image management library & bundle based on GD to handle image thumbnails
- Host: GitHub
- URL: https://github.com/camelotproject/image-asset
- Owner: CamelotProject
- Created: 2019-08-08T06:54:02.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-18T12:43:06.000Z (almost 5 years ago)
- Last Synced: 2025-03-24T02:48:27.182Z (2 months ago)
- Topics: assets, gd, images, jpg, png, svg, symfony-bundle, thumbnails, webp
- Language: PHP
- Homepage:
- Size: 1.19 MB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
Camelot Image Asset
===================Installation
------------### Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
```console
$ composer require camelot/image-asset
```### Applications that don't use Symfony Flex
#### Step 1: Download the Bundle
Open a command console, enter your project directory and execute the
following command to download the latest stable version of this bundle:```console
$ composer require camelot/image-asset
```This command requires you to have Composer installed globally, as explained
in the [installation chapter](https://getcomposer.org/doc/00-intro.md)
of the Composer documentation.#### Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the `config/bundles.php` file of your project:```php
// config/bundles.phpreturn [
// ...
Camelot\ImageAsset\Bridge\Symfony\CamelotImageAssetBundle::class => ['all' => true],
];
```Configuration
-------------### Default configuration
```yaml
# config/packages/camelot_image_asset.yaml
camelot_image_asset:
image_dirs:
- '%kernel.project_dir%/public/images'
static_path: '%kernel.project_dir%/public/thumbs'
routing:
mount_point: /thumbs
image:
controller: Camelot\ImageAsset\Controller\ImageController
path: '/{width}x{height}/{action}/{file}'
image_alias:
controller: Camelot\ImageAsset\Controller\ImageAliasController
path: '/{alias}/{file}'
default_image:
path: image-default.png
filesystem: camelot.image.filesystem.bundle
default_image_size:
width: 1024
height: 768
error_image:
path: image-error.png
filesystem: camelot.image.filesystem.bundle
cache_time: null
limit_upscaling: true
only_aliases: false
aliases: ~
```### Aliases
```yaml
# config/packages/camelot_image_asset.yaml
camelot_image_asset:
# ...aliases:
my_alias:
image_size:
width: 1024
height: 768
action: ~ # One of "border"; "crop"; "fit"; "resize"
other_alias:
image_size:
width: 1900
height: 1200
action: ~ # One of "border"; "crop"; "fit"; "resize"
```### Routing
```yaml
# config/routes/camelot_image_asset.yaml
camelot_image_asset:
resource: .
type: image_asset
prefix: /
```Usage
-----### Twig
```twig
{% set uri = '/images/image.png' %}{# This will be cropped to the default width & height #}
{# Same, but path resolved by Symfony's asset() Twig function #}
{% set package_name = 'my_symfony_asset_package_name' %} # See config/packages/assets.yaml
![]()
```NGINX Optimisation
------------------```nginx
location ~* /thumbs/(.*)$ {
try_files $uri $uri/ /index.php?$query_string;
}location ~* ^.+\.(?:gif|jpe?g|jpeg|jpg|png|svg|svgz)$ {
access_log off;
log_not_found off;
expires max;
add_header Access-Control-Allow-Origin "*";
add_header Cache-Control "public, mustrevalidate, proxy-revalidate";
add_header Pragma public;
}
```