{"id":20126055,"url":"https://github.com/inteve/simple-image-storage","last_synced_at":"2026-04-19T17:10:23.088Z","repository":{"id":56992727,"uuid":"53128091","full_name":"inteve/simple-image-storage","owner":"inteve","description":"Simple image storage for Nette","archived":false,"fork":false,"pushed_at":"2018-06-24T12:31:53.000Z","size":9,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-13T08:12:24.425Z","etag":null,"topics":["image-storage","nette","php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/inteve.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-03-04T10:37:03.000Z","updated_at":"2018-11-24T14:48:33.000Z","dependencies_parsed_at":"2022-08-21T12:50:54.348Z","dependency_job_id":null,"html_url":"https://github.com/inteve/simple-image-storage","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inteve%2Fsimple-image-storage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inteve%2Fsimple-image-storage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inteve%2Fsimple-image-storage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/inteve%2Fsimple-image-storage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/inteve","download_url":"https://codeload.github.com/inteve/simple-image-storage/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241570919,"owners_count":19984002,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["image-storage","nette","php"],"created_at":"2024-11-13T20:13:04.222Z","updated_at":"2025-10-14T10:33:09.385Z","avatar_url":"https://github.com/inteve.png","language":"PHP","funding_links":["https://www.patreon.com/bePatron?u=9680759","https://www.paypal.me/janpecha/1eur"],"categories":[],"sub_categories":[],"readme":"\n# Simple Image Storage\n\nImage storage for Nette.\n\n\u003ca href=\"https://www.patreon.com/bePatron?u=9680759\"\u003e\u003cimg src=\"https://c5.patreon.com/external/logo/become_a_patron_button.png\" alt=\"Become a Patron!\" height=\"35\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.paypal.me/janpecha/1eur\"\u003e\u003cimg src=\"https://buymecoffee.intm.org/img/button-paypal-white.png\" alt=\"Buy me a coffee\" height=\"35\"\u003e\u003c/a\u003e\n\n\n## Installation\n\n[Download a latest package](https://github.com/inteve/simple-image-storage/releases) or use [Composer](http://getcomposer.org/):\n\n```\ncomposer require inteve/simple-image-storage\n```\n\nLibrary requires PHP 5.6.0 or later.\n\n\n## Usage\n\n``` php\nuse Inteve\\SimpleImageStorage\\ImageStorage;\n```\n\n\n### Register in config\n\n``` yaml\nparameters:\n\timageStorage:\n\t\tdirectory: %wwwDir%\n\t\tpublicDirectory: @httpRequest::getUrl()::getBaseUrl()\n\t\tstorageName: images # optional\n\nservices:\n\t- Inteve\\SimpleImageStorage\\ImageStorage(%imageStorage.directory%, %imageStorage.publicDirectory%, %imageStorage.storageName%)\n```\n\n\n### Store image\n\n``` php\n\u003c?php\n$image = $imageStorage-\u003eupload($fileUpload);\n// $image = 'image-name.jpg'\n\n$avatar = $imageStorage-\u003eupload($fileUpload, 'upload/avatars');\n// $avatar = 'upload/avatars/image-name.jpg';\n```\n\n\n### Delete image\n\n``` php\n\u003c?php\n$imageStorage-\u003edelete('upload/avatar/image-name.jpg');\n```\n\n\n### Get original path\n\n``` php\n\u003c?php\n$path = $imageStorage-\u003egetRealPath('upload/avatar/image-name.jpg');\n```\n\n\n### Get original public path\n\n``` php\n\u003c?php\n$path = $imageStorage-\u003egetPublicPath('upload/avatar/image-name.jpg');\n```\n\n\n### Thumbnails\n\n``` php\n\u003c?php\n$path = $imageStorage-\u003ethumbnail($file, $width, $height, $flags = NULL, $quality = NULL);\n$path = $imageStorage-\u003ethumbnail('upload/avatar/image-name.jpg', 512, 256);\n```\n\nIt uses `Nette\\Utils\\Image` by default but you can provide custom thumbnail generator in constructor:\n\n``` php\n$imageStorage = new ImageStorage(..., ..., ..., function ($sourcePath, $outputPath, array $thumbnailData) {\n\t$im = new Imagick;\n\t$im-\u003ereadImage($sourcePath);\n\t$im-\u003ecrop(...);\n\t$im-\u003ewriteImage($outputPath);\n});\n```\n\n* `string $sourcePath` - path to original image\n* `string $outputPath` - thumbnail path\n* `array $thumbnailData`\n\t* `int|NULL width` - width of thumbnail or NULL\n\t* `int|NULL height` - height of thumbnail or NULL\n\t* `int|NULL quality` - quality of output image or NULL\n\t* `int flags` - see constants ImageStorage::SHRINK_ONLY, STRETCH, FIT, FILL \u0026 EXACT\n\n\n### In template\n\n``` php\nclass BasePresenter extends Nette\\Application\\UI\\Presenter\n{\n\t/** @var  Inteve\\SimpleImageStorage\\ImageStorage  @inject */\n\tpublic $imageStorage;\n\n\n\tprotected function beforeRender()\n\t{\n\t\tparent::beforeRender();\n\t\t$this-\u003etemplate-\u003eimg = $this-\u003eimageStorage;\n\t}\n}\n```\n\n``` smarty\n\u003cimg src=\"{$img-\u003ethumbnail($avatar, 512, 256)}\"\u003e\n\u003cimg src=\"{$img-\u003ethumbnail($avatar, 512, 256, $img::SHRINK_ONLY)}\"\u003e\n\u003cimg src=\"{$img-\u003ethumbnail($avatar, 512, 256, $img::STRETCH)}\"\u003e\n\u003cimg src=\"{$img-\u003ethumbnail($avatar, 512, 256, $img::FILL)}\"\u003e\n\u003cimg src=\"{$img-\u003ethumbnail($avatar, 512, 256, $img::EXACT)}\"\u003e\n```\n\n------------------------------\n\nLicense: [New BSD License](license.md)\n\u003cbr\u003eAuthor: Jan Pecha, https://www.janpecha.cz/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finteve%2Fsimple-image-storage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finteve%2Fsimple-image-storage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finteve%2Fsimple-image-storage/lists"}