Download the PHP package harmim/images without Composer
On this page you can find all versions of the php package harmim/images. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download harmim/images
More information about harmim/images
Files in harmim/images
Informations about the package images
A tool for working with images
About
A tool for working with images. It can be used as an extension of the Nette Framework.
There is Image storage
for storing images easily and/or deleting them from
the storage. There are also several ways how to resize and/or process images.
Then, you can get a stored image path directly, or you can use prepared
Latte macros to generate HTML tags.
See Usage.
Requires the PHP version 8.2
or newer and PHP extensions fileinfo
, gd
,
and intl
.
Installation
Download the latest release or use Composer:
Usage
For working with images, we need \Harmim\Images\ImageStorage
:
Without Nette
In $customConfig
, you can specify a custom configuration.
See Configuration.
With Nette
You can enable and customise the extension using your NEON config:
In the images
section, you can specify a custom configuration.
See Configuration.
\Harmim\Images\ImageStorage
is now registrated in the DI container. You can
get it directly from the container:
Of course, you can inject \Harmim\Images\ImageStorage
through a constructor,
inject method, inject annotation, or any other way.
If you want to use \Harmim\Images\ImageStorage
in a presenter or control
where inject methods are called, you can use trait
\Harmim\Images\TImageStorage
. In your presenters, controls, and theire
templates, there will be variable $imageStorage
.
The extension installs images macros to Latte. See Macros.
Storing Images
You can store an image using method
\Harmim\Images\ImageStorage::saveImage(string $name, string $path): string
or
\Harmim\Images\ImageStorage::saveUpload(\Nette\Http\FileUpload $file): string
.
An original image will be stored; then, it will be compresed.
Both methods return a stored image file name. You can use this file name to delete, resize, or retrieve the image.
Images are stored with a unique file name and location.
Deleting Images
Using method
\Harmim\Images\ImageStorage::deleteImage(string $fileName, array $excludedTypes = []): void
,
you can delete an image by $fileName
which should be a file name returned by
\Harmim\Images\ImageStorage::saveImage
or
\Harmim\Images\ImageStorage::saveUpload
.
If you pass $excludedTypes
, only other types will be deleted; otherwise, all
types, the original image, and the compressed image will be deleted.
Getting Stored Images' Paths
You can get a stored image path using method
\Harmim\Images\ImageStorage::getImageLink(string $fileName, ?string $type = null, array $options = []): ?string
or Macros. You can pass a specific type defined in an inital
configuration, or you can pass specific options. See
Configuration. $fileName
should be a file name returned by
\Harmim\Images\ImageStorage::saveImage
or
\Harmim\Images\ImageStorage::saveUpload
.
If you try to get an image of a size or a type for a first time, this image is not yet created, so it will be created now. Next time, you will get a resized image.
If the image does not exist, a placeholder will be returned.
In case you need to get an original/compressed image, in the configuration,
you can use orig/compressed
, respectively. For example, ['orig' => true]
.
It is also possible to use these options in macros.
Macros
img
Renders the img
tag:
or tags for lazy loading with the lazy
option:
Examples:
n:img
Renders the src
attribute. It can be used, e.g., in the img
element.
Examples:
imgLink
Returns a relative path (from the resource root directory) to a given image.
Examples:
Configuration
wwwDir
: (string
) An absolute path to the resource root directory.- Default:
%wwwDir%
in Nette; otherwise, you have to specify this parameter.
- Default:
imagesDir
: (string
) A relative path (fromwwwDir
) to a directory for storing images.- Default:
data/images
.
- Default:
origDir
: (string
) A relative path (fromimagesDir
) to a directory for storing original images.- Default:
orig
.
- Default:
compressionDir
: (string
) A relative path (fromimagesDir
) to a directory for storing compressed images.- Default:
imgs
.
- Default:
placeholder
: (string
) A relative path (fromwwwDir
) to an image placeholder (when an image is not found).- Default:
img/noimg.jpg
.
- Default:
width
: (int
) An image width.- Default:
1024
.
- Default:
height
: (int
) An image height.- Default:
1024
.
- Default:
compression
: (int
) A compression quality. See\Nette\Utils\Image::save
.- Default:
85
.
- Default:
transform
: (\Harmim\Images\Resize|list<\Harmim\Images\Resize>
) See Transform-Options.- Default:
\Harmim\Images\Resize::OrSmaller
.
- Default:
allowedImgTagAttrs
: (list<string>
)img
attributes you can use in the{img}
Latte macro, other attributes are ignored.- Default:
[alt, height, width, class, hidden, id, style, title, data]
.
- Default:
lazy
: (bool
) Render the{img}
Latte macro as a lazy image (with thedata-src
attribute,lazy
class, and normalimg
tag in thenoscript
tag).- Default:
false
.
- Default:
-
types
: (array<string, mixed>
) A configuration for image types overriding the default configuration.- Default:
[]
. - Example:
- Default:
destDir
: (?string
) A directory where to find images.- Default:
null
.
- Default:
orig
: (?bool
) When set totrue
, the original image will be returned.- Default:
null
.
- Default:
compressed
: (?bool
) When set totrue
, the original compressed image will be returned.- Default:
null
.
- Default:
Transform-Options
Option | Description |
---|---|
\Harmim\Images\Resize::ShrinkOnly |
Only shrinking (prevents a small image from being stretched). |
\Harmim\Images\Resize::Stretch |
Do not keep the aspect ratio. |
\Harmim\Images\Resize::OrSmaller |
The resulting dimensions will be smaller or equal to the required dimensions. |
\Harmim\Images\Resize::OrBigger |
Fills (and possibly exceeds in one dimension) the target area. |
\Harmim\Images\Resize::Cover |
Fills the target area and cuts off what goes beyond. |
\Harmim\Images\Resize::Exact |
Placees a not stretched image to the exact blank area. |
License
This tool is licensed under the MIT license.
Author: Dominik Harmim [[email protected]](mailto:[email protected])
All versions of images with dependencies
ext-fileinfo Version *
ext-gd Version *
ext-intl Version *
latte/latte Version ^3.0
nette/di Version ^3.1
nette/http Version ^3.2
nette/utils Version ^4.0