CSS-SpriteBuilder

 view release on metacpan or  search on metacpan

Makefile.PL  view on Meta::CPAN

#
# This program is free software; you can redistribute it and/or modify it
# under the same terms as Perl itself.
# Copyright 2013 Yuriy Ustushenko, all rights reserved.

use 5.008008;
use warnings;
use strict;
use ExtUtils::MakeMaker;

our @MODULES = qw( GD Image::Magick );

my $isOK = 0;
print "This module requires at least one of: ", join(", ", @MODULES), "...\n";
foreach (@MODULES){
    print "Looking for $_ ... ";
    eval "require "."$_";
    if ($@) {
        print "not found\n";
    }
    else {

Makefile.PL  view on Meta::CPAN

        $isOK = 1;
        last;
    }
}

our @REQUIRED;
unless ($isOK) {
    print <<EOF;

This module requires you have installed on your system
one of either the Image::Magick or GD Perl modules.

It appears you have none of these.
EOF
    push @REQUIRED, $MODULES[0] => 0;
}

WriteMakefile(
    NAME             => 'CSS::SpriteBuilder',
    VERSION_FROM     => 'lib/CSS/SpriteBuilder.pm',
    ABSTRACT_FROM    => 'lib/CSS/SpriteBuilder.pm',

README  view on Meta::CPAN

        $build->write_css('sprite.css');

        Or

        $builder->build(config => 'config.xml');

        $build->write_css('sprite.css');

DESCRIPTION
    This module generate CSS sprites with one of these modules:
    Image::Magick or GD.

    It has many useful settings and can be used for sites with complex
    structure.

METHODS
  new(<%args>)
    my $builder = CSS::SpriteBuilder->new(<%args>);

    Create instance.

lib/CSS/SpriteBuilder.pm  view on Meta::CPAN

    $build->write_css('sprite.css');

    Or

    $builder->build(config => 'config.xml');

    $build->write_css('sprite.css');

=head1 DESCRIPTION

This module generate CSS sprites with one of these modules: Image::Magick or GD.

It has many useful settings and can be used for sites with complex structure.

=head1 METHODS

=head2 new(<%args>)

my $builder = CSS::SpriteBuilder->new(<%args>);

Create instance.

lib/CSS/SpriteBuilder/ImageDriver/Auto.pm  view on Meta::CPAN


=head1 NAME

CSS::SpriteBuilder::ImageDriver::Auto - Class for auto select image manipulation module.

=cut

use warnings;
use strict;

our @MODULES = qw(Image::Magick GD);

TRY_LOAD: {
    for (@MODULES) {
        my $module = $_;
        $module =~ s/:://g;
        eval "use base 'CSS::SpriteBuilder::ImageDriver::$module'";
        last TRY_LOAD unless $@;
    }
    warn "You need one of these modules: ". join(', ', @MODULES) .", will use fake-mode.";
    eval "use base 'CSS::SpriteBuilder::ImageDriver::Fake'";

lib/CSS/SpriteBuilder/ImageDriver/ImageMagick.pm  view on Meta::CPAN

package CSS::SpriteBuilder::ImageDriver::ImageMagick;

=head1 NAME

CSS::SpriteBuilder::ImageDriver::ImageMagick - Class for image manipulation using Image::Magick module.

=cut

use warnings;
use strict;
use Image::Magick;
use base 'CSS::SpriteBuilder::ImageDriver::Common';

sub driver { 'ImageMagick'                         }
sub width  { $_[0]->{_image}->Get('width')  || 0   }
sub height { $_[0]->{_image}->Get('height') || 0   }

sub reset {
    my ($self, $image) = @_;

    $self->{_image} = $image ? $image->{_image}->Clone() : Image::Magick->new()
        or die "Failed to create image due: $!";

    return;
}

sub read {
    my ($self, $filename) = @_;

    my $error = $self->{_image}->Read($filename);
    die "Failed to read image from '$filename' due: $error" if $error;



( run in 1.454 second using v1.01-cache-2.11-cpan-beeb90c9504 )