#!/usr/bin/perl

use Gimp qw(:auto __ N_);
use Gimp::Fu;

N_"/Xtns/Render"; # dummy translation for i18n bugs

podregister {
  gimp_context_set_background($paper);
  my $img = gimp_image_new($size, $size, RGB);
  my $layer = gimp_layer_new($img, $size, $size, RGB_IMAGE, "Layer 1", 100, NORMAL_MODE);
  gimp_image_insert_layer($layer, 0, -1);
  gimp_context_set_background($hole);
  $layer->gimp_edit_fill(BACKGROUND_FILL);
  gimp_selection_none($img);
  my $ncircles = int(($size + $gap) / ($diameter + $gap));
  my $x = 0;
  for ($i=0; $i<$ncircles; $i++) {
    $img->select_ellipse( CHANNEL_OP_ADD, $x, 0, $diameter, $diameter);
    $img->select_ellipse( CHANNEL_OP_ADD, 0, $x, $diameter, $diameter);
    $x += $diameter + $gap;
  }
  gimp_context_set_background($paper);
  gimp_edit_fill($layer, BACKGROUND_FILL);
  gimp_selection_none($img);
# here, at last, comes the clever part! :-)
  $layer->offset(1, 0, -($diameter / 2), -($diameter / 2));
  gimp_display_new($img);
  return $img;
};

exit main;
__END__

=head1 NAME

stamps - Creates a rectangular image with stamp-like perforations

=head1 SYNOPSIS

<Image>/File/Create/Logos/Stamps...

=head1 DESCRIPTION

Default values are not bad!

=head1 PARAMETERS

  [PF_INT32, "size", "Image size", 90],
  [PF_COLOR, "paper", "Paper color", [255, 255, 255]],
  [PF_COLOR, "hole", "Hole color", [0, 0, 0]],
  [PF_INT32, "diameter", "Diameter", 10],
  [PF_INT32, "gap", "Gap", 5]

=head1 AUTHOR

Claes G Lindblad <claesg@algonet.se>

=head1 DATE

990314

=head1 LICENSE

Claes G Lindblad <claesg@algonet.se>

Distributed under the terms of the GNU public license, v2 or higher.
