PDA

Vollständige Version anzeigen : Zweites Script: Spiegeleffekt


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

schumaml
09.05.2005, 23:23
Ich habe mir die Freiheit genommen, den Titel etwas sprechender zu gestalten - wenn es ein Spiegeleffekt ist, dann soll das da auch zu lesen sein.

Renegade
10.05.2005, 14:05
Kannst du mir bitte sagen, in welchen Ordner ich das Script abspreichern soll?
Ich benutze Windows ;)

Mfg Renegade

tobias
10.05.2005, 15:08
Das ist ein Perlscript, das bringt dir unter Windows, so weit ich weiß, eh nicht.

klaus_harrer
10.05.2005, 15:24
Hallo Renegade

Mit diesen Script wirst du nicht viel Freude haben.
Es ist ein Perlscript und das Plugin läuft bei dir zu 99,9% nicht.
Wenn du den Perlinterpreter trotzdem geschafft hast unter Windows zu installieren das schreibe mir bitte eine e-Mail wie du dies bewerkstelligt hast.

Es gibt aber noch eine andere Variante.
Ich habe das Script auf Script-Fu umgeschrieben.
Unter http://www.gimp-script.de/script/mirror_object.scm kannst du dir den Sourcecode in einen Editor deiner Wahl kopieren.
Speicherst ihn unter z.B mirror_object.scm in dein Scriptverzeichnis ab.

Wo sich dein Scriptverzeichnis befindet kannst du unter Datei->Einstellung->Ordner->Scripte erfahren.

Nach der Installation befindet isich das Tool unter "Filter->Abbilden->mirror object.

MfG
Klaus

Renegade
10.05.2005, 17:40
Danke, @ klaus :)
Wusste ich nicht, dass ich es nicht bei mir verwenden kann, aber jetzt habe ich es ja auch!

Danke :)

Mfg Renegade