ucraft-com/thumbnail-generator

This PHP package provides a comprehensive solution for generating thumbnails from various file types, including images, videos, PDF documents, and audio files.

Installs: 971

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 2

Forks: 0

Open Issues: 0

Language:Rich Text Format

1.0.0 2024-08-08 18:29 UTC

This package is auto-updated.

Last update: 2024-11-08 19:01:49 UTC


README

Thumbnail Generator is a versatile Laravel package designed to create and manage thumbnails from various file types, including images, videos, audios, documents, and PDF files. This package provides a straightforward API to generate thumbnails and customize their dimensions and quality.

Features

  • Multiple File Type Support: Generate thumbnails from images (JPEG, PNG, GIF), videos, audios, documents, and PDF files.
  • WebP Support: Generate WebP thumbnails for better compression and faster load times.
  • Customizable Dimensions: Specify the width and height of the thumbnails.
  • Quality Control: Adjust the quality of the generated thumbnails to balance between size and visual fidelity.
  • Aspect Ratio Maintenance: Automatically maintain the aspect ratio of the original media.

Requirements

  • PHP: 8.1 or higher
  • Imagick PHP extension: You need to have the Imagick PHP extension installed and enabled to use the ThumbnailGenerator package.

Installation

You can install the package via Composer:

composer require ucraft-com/thumbnail-generator

php artisan vendor:publish --provider="Uc\ThumbnailGenerator\ThumbnailGeneratorServiceProvider"

Basic Usage

Images

use Uc\ThumbnailGenerator\ThumbnailGeneratorFactory;

$factory = new ThumbnailGeneratorFactory(...);
$gen = $factory->createImageThumbnailGenerator();
$content = $gen->generate($file, 200, 200);

WebP Thumbnails

To generate WebP thumbnails, use the makeWebPAware method to decorate the ThumbnailGenerator instance:

use Uc\ThumbnailGenerator\ThumbnailGeneratorFactory;

$factory = new ThumbnailGeneratorFactory(...);
$gen = $factory->createImageThumbnailGenerator();
$webPGen = $factory->makeWebPAware($gen);

// Generate a WebP thumbnail using a decorated instance
[$content, $webPContent] = $webPGen->generate($file, 200, 200);