klaus_harrer
09.05.2004, 11:58
Hallo
Das ich mich zur Zeit mit Gimp-Perl beschäftige, brauche ich auch ein wenig Praxis. Darum hatte ich mir die Aufgabe gestellt, einen Spiegeleffekt auf ein Object zu realisieren. Und mit ein wenig Phatasie ist der auch zu erkennen.
Hie das Script:
#!/usr/bin/perl -w
use Gimp ":auto";
use Gimp::Fu;
sub mirrobj{
my ($img, $drw, $transparency, $spacing) = @_;
$img->gimp_image_undo_group_start;
$drw->edit_copy();
my $mirror = $drw->edit_paste(0);
$mirror->floating_sel_to_layer();
Gimp->gimp_flip($mirror, 1);
my ($coordinate_x, $coordinate_y) = Gimp->gimp_drawable_offsets($mirror);
my ($width, $height) = ($mirror->width(), $mirror->height());
$mirror->set_offsets($coordinate_x, $height + $coordinate_y + $spacing);
my $mask = $mirror->create_mask(ADD_WHITE_MASK);
$mirror->add_mask($mask);
Gimp->gimp_palette_set_foreground([255, 255, 255]);
Gimp->gimp_palette_set_background([0, 0, 0]);
Gimp->gimp_edit_blend($mask, NORMAL_MODE, FG_BG_RGB_MODE, GRADIENT_LINEAR, $transparency, 0, REPEAT_NONE, 0, 0, 0, 0, 0, 0 ,0 , 0, $height);
$mirror->set_opacity(60);
$mirror->remove_mask(MASK_APPLY);
$mirror->set_name("mirror layer");
$img->gimp_image_undo_group_end;
return();
}
register
"mirror_object", #fill in name
"", #a small description
"Help", #a help text
"Klaus Harrer", #my name
"Klaus Harrer (c)", #copyright
"2004-05-03", #date
"<Image>/Filters/Map/Mirror Object...", #menu path
"*", #Images types
[
[PF_SLIDER, "transparency","transparency",80 ,[0, 100, 1]],
[PF_INT, "spacing", "spacing to object", 1]
],
\&
Gimp::set_trace(TRACE_ALL);
exit main();
Wichtig ihr musst das Objekt selectiert haben:
http://home.arcor.de/klaus_harrer/Grafiken/mirr_ausg.png
Ihr könnt den Abstand zum Objekt einstellen, sowie die Transparenz des Spiegellayer.
http://home.arcor.de/klaus_harrer/Grafiken/mirr_einst.png
Und so sieht dann das Ergebnis aus.
http://home.arcor.de/klaus_harrer/Grafiken/mirr_ergeb.png
MfG
Klaus
Das ich mich zur Zeit mit Gimp-Perl beschäftige, brauche ich auch ein wenig Praxis. Darum hatte ich mir die Aufgabe gestellt, einen Spiegeleffekt auf ein Object zu realisieren. Und mit ein wenig Phatasie ist der auch zu erkennen.
Hie das Script:
#!/usr/bin/perl -w
use Gimp ":auto";
use Gimp::Fu;
sub mirrobj{
my ($img, $drw, $transparency, $spacing) = @_;
$img->gimp_image_undo_group_start;
$drw->edit_copy();
my $mirror = $drw->edit_paste(0);
$mirror->floating_sel_to_layer();
Gimp->gimp_flip($mirror, 1);
my ($coordinate_x, $coordinate_y) = Gimp->gimp_drawable_offsets($mirror);
my ($width, $height) = ($mirror->width(), $mirror->height());
$mirror->set_offsets($coordinate_x, $height + $coordinate_y + $spacing);
my $mask = $mirror->create_mask(ADD_WHITE_MASK);
$mirror->add_mask($mask);
Gimp->gimp_palette_set_foreground([255, 255, 255]);
Gimp->gimp_palette_set_background([0, 0, 0]);
Gimp->gimp_edit_blend($mask, NORMAL_MODE, FG_BG_RGB_MODE, GRADIENT_LINEAR, $transparency, 0, REPEAT_NONE, 0, 0, 0, 0, 0, 0 ,0 , 0, $height);
$mirror->set_opacity(60);
$mirror->remove_mask(MASK_APPLY);
$mirror->set_name("mirror layer");
$img->gimp_image_undo_group_end;
return();
}
register
"mirror_object", #fill in name
"", #a small description
"Help", #a help text
"Klaus Harrer", #my name
"Klaus Harrer (c)", #copyright
"2004-05-03", #date
"<Image>/Filters/Map/Mirror Object...", #menu path
"*", #Images types
[
[PF_SLIDER, "transparency","transparency",80 ,[0, 100, 1]],
[PF_INT, "spacing", "spacing to object", 1]
],
\&
Gimp::set_trace(TRACE_ALL);
exit main();
Wichtig ihr musst das Objekt selectiert haben:
http://home.arcor.de/klaus_harrer/Grafiken/mirr_ausg.png
Ihr könnt den Abstand zum Objekt einstellen, sowie die Transparenz des Spiegellayer.
http://home.arcor.de/klaus_harrer/Grafiken/mirr_einst.png
Und so sieht dann das Ergebnis aus.
http://home.arcor.de/klaus_harrer/Grafiken/mirr_ergeb.png
MfG
Klaus