NAME

Mojolicious::Plugin::AssetPack::Pipe::Png - Crush PNG image files

SYNOPSIS

Application

plugin AssetPack => {pipes => ["Png"]};

# Forces the use of "optipng -clobber -preserve $input"
app->asset->pipe("Png")->app("optipng");

# Forces the use of "pngquant --speed 2 -"
app->asset->pipe("Png")->app("pngquant");

# Set custom application arguments:
app->asset->pipe("Png")->app("pngquant")->app_args([qw(--speed 10 --ordered -)]);

DESCRIPTION

Mojolicious::Plugin::AssetPack::Pipe::Png can be used to crush "png" image files.

This plugin has default settings for "pngquant" (default) and "optipng". Which will be the default in the future is unknown, so force the one you want in case that matters.

This pipe is EXPERIMENTAL. Feedback wanted.

TODO: Detect which application is installed and use the best available.

TODO: Add support for pngcrush.

ATTRIBUTES

app

$str = $self->app;
$self = $self->app("pngquant");

Can be used to set a custom application.

app_args

$array = $self->app_args;
$self = $self->app_args([qw(-clobber $input)]);

Can be used to set custom "app" arguments. The special $input string in the argument list will be replaced with the path to a temp file holding the image data.

If no $input element is found in the "app_args" list, then STDIN and STDOUT will be used instead.

METHODS

process

See "process" in Mojolicious::Plugin::AssetPack::Pipe.

SEE ALSO

Mojolicious::Plugin::AssetPack.