A responsive image workflow for optimizing and resizing your images
Switch branches/tags
Nothing to show
Clone or download
David Newton
David Newton Added reqs to readme
Latest commit 9bb0677 Jun 5, 2015
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs 1.0.1 Apr 22, 2015
src 1.0.1 Apr 22, 2015
test 1.0.1 Apr 22, 2015
.gitignore rasterize SVGs! Apr 18, 2015
LICENSE Initial commit Apr 7, 2015
README.md Added reqs to readme Jun 5, 2015
composer.json 1.0.1 Apr 22, 2015

README.md

php-respimg

A responsive image workflow for optimizing and resizing your images.

See also grunt-respimg.

Full documentation available at https://rawgit.com/nwtn/php-respimg/master/docs/index.html.

Requirements/dependencies

Examples

To resize one raster image, without optimization:

$image = new nwtn\Respimg($input_filename);
$image->smartResize($output_width, $output_height, false);
$image->writeImage($output_filename);

To resize one raster image and maintain aspect ratio, without optimization:

$image = new nwtn\Respimg($input_filename);
$image->smartResize($output_width, 0, false);
$image->writeImage($output_filename);

To resize one raster image and maintain aspect ratio, with optimization:

$image = new nwtn\Respimg($input_filename);
$image->smartResize($output_width, 0, true);
$image->writeImage($output_filename);
nwtn\Respimg::optimize($output_filename, 0, 1, 1, 1);

To resize a directory of raster images and maintain aspect ratio, with optimization:

$exts = array('jpeg', 'jpg', 'png');
if ($dir = opendir($input_path)) {
	while (($file = readdir($dir)) !== false) {
		$base = pathinfo($file, PATHINFO_BASENAME);
		$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
		if (in_array($ext, $exts)) {
			$image = new nwtn\Respimg($input_path . '/' . $file);
			$image->smartResize($width, 0, true);
			$image->writeImage($output_path . '/' . $base . '-w' . $w . '.' . $ext);
		}
	}
}
nwtn\Respimg::optimize($output_path, 0, 1, 1, 1);

To resize a directory of raster images and SVGs and maintain aspect ratio, with optimization:

$exts = array('jpeg', 'jpg', 'png');
if ($dir = opendir($input_path)) {
	while (($file = readdir($dir)) !== false) {
		$base = pathinfo($file, PATHINFO_BASENAME);
		$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));
		if (in_array($ext, $exts)) {
			$image = new nwtn\Respimg($input_path . '/' . $file);
			$image->smartResize($width, 0, true);
			$image->writeImage($output_path . '/' . $base . '-w' . $w . '.' . $ext);
		} elseif ($ext === 'svg') {
			copy($input_path . '/' . $file, $output_path . '/' . $file);
			nwtn\Respimg::rasterize($input_path . '/' . $file, $output_path . '/', $width, 0);
		}
	}
}
nwtn\Respimg::optimize($output_path, 3, 1, 1, 1);

Release History

1.0.1

  • Library loading bug fix
  • Namespacing in README

1.0.0

  • Major refactoring
  • Image optimization
  • SVG rasterization
  • Basic (non-unit) tests

0.0.2

  • Fix a path in the test file
  • Minor colorspace change (should have no effect on output)
  • Comments and stuff

0.0.1

  • Packagist release

0.0.0

  • Super experimental pre-release. Feel free to mess about with it, but don’t expect much.