npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@redsift/gulp-compressedimages

v0.0.1

Published

Photo compression gulp task.

Downloads

11

Readme

gulp-compressedimages

Circle CI npm MIT

Processes images with ImageMagick to resize and compress them carefully as JPEG or WEBP files.

Installation

gulp-compressedimages requires ImageMagick (tested with ImageMagick 6.9.2) compiled with the jpeg, lcms and webp delegates.

Verify this via convert -version. If you receive a Stream yields empty buffer error while reading or writing WEBP, most likely your ImageMagick binary was not built with WEBP support.

Running the pipe will also typically require an sRGB ICC profile downloaded locally to correctly perform the color conversion.

Usage

require('gulp-compressedimages').resampler can be used in the gulp stream to process images.

// Multiple files to an auto compressed JPEG
var gulp = require('gulp'),
    photos = require('@redsift/gulp-compressedimages');

gulp.task('images', function() {
    return gulp.src([ 'photo1.jpg', ... ])
        .pipe(photos.resampler({ size: 200 }))
        .pipe(gulp.dest('dist/'));
});
// Multiple files to a heavily compressed WebP
var gulp = require('gulp'),
    photos = require('@redsift/gulp-compressedimages');

gulp.task('images', function() {
    return gulp.src([ 'photo1.jpg', ... ])
        .pipe(photos.resampler({ size: 200, webp: true, quality: 50 }))
        .pipe(gulp.dest('dist/'));
});

Usage - Standard Sizes

require('gulp-compressedimages').common provides a list of standard sizes to generate asset files for common use.

The common sizes also have small amounts of sharpening built into the pipeline and are best served by processing original assets at original (> 3000 pixels) resolutions.

var gulp = require('gulp'),
    photos = require('@redsift/gulp-compressedimages'),
    merge = require('merge-stream');

gulp.task('common', function() {
    var all = photos.common.map(function (o) {
        return gulp.src('photo.jpg')
            .pipe(photos.resampler(o))
            .pipe(gulp.dest('dist/'));
    });

    return merge.apply(this, all);
});

Stripping

This plugin strips color profiles and comments to reduce image size.

Colorspace conversion

As a result of stripping profiles, the image needs to be converted to sRGB. If required, the plugin with change the colorspace with a Perceptual intent.

Gamma correct scaling

The scaling operations are done in a linear manner to avoid scaling errors. Reference this article for the issues addressed.