Image Resizer

asciito

AuthorasciitoPlugin TypeCommunity PluginPriceFreeVersionvlatestLicenseMIT
NativePHP^3.2PHP^8.2iOSanyAndroidany

Downscale images using native platform APIs — ImageIO on iOS and BitmapFactory on Android — from a NativePHP Mobile app.

Features

  • Resize images to a maximum side length while preserving aspect ratio
  • No upscaling — only downscales
  • Automatic EXIF orientation correction on both platforms
  • Output always written as JPEG
  • Memory-efficient: iOS streams from disk via thumbnail API; Android uses inSampleSize on decode

Installation

composer require coyotito/image-resizer

Register the plugin in your NativeServiceProvider:

public function plugins(): array
{
    return [
        \Coyotito\ImageResizer\ImageResizerServiceProvider::class,
    ];
}

Usage

use Coyotito\ImageResizer\Facades\ImageResizer;

$ok = ImageResizer::resize(
    sourcePath: '/abs/path/to/source.jpg',
    targetPath: '/abs/path/to/target.jpg',
    maxSide: 1024,  // longest side cap; preserves aspect ratio
    quality: 80,    // JPEG quality, 0–100
);

Returns true on success, false on failure. The target is always written as JPEG.

Platform Notes

Feature iOS Android
Decoder CGImageSource (ImageIO) BitmapFactory with inSampleSize
EXIF orientation Auto via thumbnail transform Explicit via ExifInterface
Output format JPEG JPEG
Memory Thumbnail API streams from disk inSampleSize downsamples on read