Tk-Image-Cut
view release on metacpan or search on metacpan
lib/Tk/Image/Cut.pm view on Meta::CPAN
);
#-------------------------------------------------
$grid[1]++;
$cut->{label_height_out} = $cut->Label(
-text => "Height ->",
)->grid(
@grid,
);
#------------------------------------------------
$grid[1]++;
$cut->{entry_height_out} = $cut->Entry(
-textvariable => \$cut->{_new_image_height},
)->grid(
@grid,
);
#-------------------------------------------------
$grid[1]++;
$cut->{button_increase} = $cut->Button(
-text => '+',
-command => [\&ImageIncrease, $cut]
)->grid(
@grid,
);
#-------------------------------------------------
$grid[1]++;
$cut->{button_reduce} = $cut->Button(
-text => '-',
-command => [\&ImageReduce, $cut],
)->grid(
@grid,
);
#-------------------------------------------------
$grid[1]++;
$cut->{label_name_out} = $cut->Label(
-text => "New Image Name ->",
)->grid(
@grid,
);
#-------------------------------------------------
$grid[1]++;
$cut->{entry_name_out} = $cut->Entry(
-textvariable => \$cut->{_new_image_name},
)->grid(
@grid,
);
#-------------------------------------------------
$grid[1]++;
$cut->{button_cut} = $cut->Button(
-text => "Cut",
-command => [\&ImageCut, $cut],
)->grid(
@grid,
);
#-------------------------------------------------
$grid[1]++;
$cut->{canvas} = $cut->Scrolled(
"Canvas",
)->grid(
-column => 0,
-row => 1,
-columnspan => $grid[1],
-sticky => "nswe",
);
#-------------------------------------------------
$cut->{childs} = {
"ButtonSelectImage" => $cut->{button_select_image},
"LabelShape" => $cut->{label_shape},
"bEntryShape" => $cut->{bentry_shape},
"ButtonColor" => $cut->{button_color},
"LabelWidthOut" => $cut->{label_width_out},
"EntryWidthOut" => $cut->{entry_width_out},
"LabelHeightOut" => $cut->{label_height_out},
"EntryHeightOut" => $cut->{entry_height_out},
"ButtonIncrease" => $cut->{button_increase},
"ButtonReduce" => $cut->{button_reduce},
"LabelNameOut" => $cut->{label_name_out},
"EntryNameOut" => $cut->{entry_name_out},
"ButtonCut" => $cut->{button_cut},
"Canvas" => $cut->{canvas},
};
$cut->Advertise($_, $cut->{childs}{$_}) for(keys(%{$cut->{childs}}));
$cut->Delegates(DEFAULT => $cut->{canvas});
$cut->ConfigSpecs(DEFAULT => ["ADVERTISED"]);
}
#-------------------------------------------------
sub SelectImage
{
my ($self) = @_;
$self->{_zoom_out} = 1;
$self->{_shrink_out} = 1;
if($self->{file_in} = $self->FileSelect()->Show())
{
$self->{canvas}->delete("all");
# GIF, XBM, XPM, BMP, JPEG, PNG, PPM, PGM
if($self->{file_in} =~ m/.+?\.(?:jpg|jpeg)$/i)
{
$self->{image_format} = "JPEG";
}
elsif($self->{file_in} =~ m/.+?\.([a-zA-Z]{3})$/)
{
$self->{image_format} = uc($1);
}
else
{
print("error in extracting image format at Tk::Image::Cut::SelectImage()\n");
$self->{canvas}->createText(10, 10,
-text => "error in extracting image format",
-anchor => "nw",
);
return;
}
$self->{image_in} = $self->Photo(
-file => $self->{file_in},
-format => $self->{image_format},
);
$self->{image_in_width} = $self->{image_in}->width();
$self->{image_in_height} = $self->{image_in}->height();
$self->{canvas}->configure(
-scrollregion => [0, 0, $self->{image_in_width}, $self->{image_in_height}],
);
$self->{canvas}->createImage(0, 0,
( run in 1.657 second using v1.01-cache-2.11-cpan-39bf76dae61 )