Re: gimp 1.2.0--a few questions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



WISH YOU ALL A VERY HAPPY NEW YEAR.

On Thu, Dec 28, 2000 at 06:42:40PM +0530, Chetan Dhavse <cdhavse@xxxxxxxx> wrote:
> Subroutine gimp_text_get_extents_fontname redefined at /opt/other/src/perl-5.6.0/lib/site_perl/5.6.0/i686-linux/Gimp.pm line 539.

this is very strange but is most probably a problem with your script
(double fork or something similar) - how do you start your script, and can
>you send a stripped-down version of your script that shows this error?

I am sending you all a small script, maybe this will give you an idea
as to what I am doing(or doing wrong).

never-the-less this script also gives me the above warnings.

The script is in two part 
1)Shell script in which I start gimp and Xvfb
and then call the main gimp-perl program.(tests) 
Please ignore the linux server name,kosi(river in India) in this case

The next is the gimp-perl script (tests) which contains a main program 
and subroutines.
I have used similar subroutines for other gimp functions as well.


Is this the right way to start a gimp-perl program? or the
only way,I had used "sub net" to start earlier (1.1.04)
but does not work overhere.(1.2.0)
do I have to use the register method.(This is not a plug-in)?
Please do suggest me a better way if there is one.

2)I refer to DB browser for assistance on in/out parameters
In  many functions the first parameter is interactive/non_in...
which is mentioned as IN INT32 (integer) therefore I put "1" 
for non_interactive
and so plug_in_autocrop(1,$image,$layer);
which does not work.


Thanks for the Patience

Gimper

Chetan


################### SHELL SCRIPT ############################
#!/bin/sh

DISPLAY=kosi:1
export DISPLAY

Xvfb :1& 

gimp --display kosi:1.0 --no-interface --version 

./rot -o a.gif

killall gimp 
killall Xvfb
###################END SHELL SCRIPT ########################


################### GIMP PERL ##############################
#!/opt/bin/perl -w

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

register
    "rotate",
    "Circle", 
    "created using Gimp",
    "Chetan",   
    "cmie", 
    "2000-06-12",
    "<Toolbox>/Xtns/Perl-Fu/Tutorial/chart",
    "*",
    [
    ],
    \&trial;  

exit main();

sub	trial 
    {

	$font1="-fromttf-arial-bold-i-normal--0-0-0-0-p-0-iso8859-1";
	$font2="-fromttf-couriernew-bold-i-normal--0-0-0-0-m-0-iso8859-1";
	#$font3="-fromttf-verdana_iso8859_1-bold-i-normal--0-0-0-0-p-0-adobe-fontspecific";
	#$font4="-misc-fixed-medium-r-normal--0-0-75-75-c-0-koi8-r";
	#$font5="-dec-terminal-medium-r-normal--0-0-75-75-c-0-dec-dectech";

	$text = "THIS IS A TEST";
	$tsize = 15;
	$angle = 0;	
	$bgcol = [100,100,100];
	$col = [233,200,150];

    my(@retval )= &text_extent($text,$font1,$tsize,$angle);

	print join("|",@retval),"\n"; 
	($img,$layer)=&init_img(500,500);
	gimp_image_set_resolution($img,120,120);
	gimp_palette_set_background($bgcol);
	gimp_edit_fill($layer,0);
    gimp_ellipse_select($img, 250, 250, 100, 100, 0, 1, 1, 1);
    gimp_palette_set_foreground($col);
	gimp_bucket_fill($layer,0,0,100,100,1,100,100);
    &write_text($img,$layer,200,200,$text,$font2,$tsize,$col,$angle);
    &write_text($img,$layer,100,100,$text,$font1,$tsize,$col,$angle);
	plug_in_autocrop($img,$layer);
	return $img;	
	}


sub init_img
    {
	# initialisation of image and layer and adding layer to the image

    my ($img_width, $img_height) = @_;
    my ($img, $layer);
    $img = gimp_image_new($img_width, $img_height, RGB);
    $layer = gimp_layer_new($img,$img_width,$img_height,RGB,"Layer 1",100,0);
    gimp_image_add_layer($img, $layer, -1);
	gimp_drawable_fill($layer,2);
    return ($img, $layer);
	}

sub text_extent
    {
	#for calculating the width and the height of the text's bounding box.
    my ($text,$font,$size,$angle) = @_;
    my ($width,$height,$ascent,$decent,$wth,$ht) = (0,0,0,0,0,0);
	my($w1,$w2,$h1,$h2);

	($wth, $ht,$ascent,$decent)=gimp_text_get_extents_fontname($text,$size,0,$font); 
	my $ang_wth = $wth;
	$width = $wth;
	$height = $ht;
	$w1 = $wth;
	$w2 = 0;
	if(defined($angle) && $angle != 0)
		{
		$ang_wth = $ht/sin($angle);
		$ang_wth = abs($ang_wth);
		$ang_wth = sprintf("%0.0f",$ang_wth);
		$w1 = $wth * abs(cos($angle));
		$w2 = $ht * abs(sin($angle));
		$h1 = $wth * abs(sin($angle));
		$h2 = $ht * abs(cos($angle));
		$width = sprintf("%0.0f",$w1 + $w2);
		$height = sprintf("%0.0f",$h1 + $h2);
		}
    return($width,$height,$ang_wth,$w1,$w2,$wth,$ht);
    }

sub write_text
    {
    # for writing text (eg. Title legends etc)
    my($img,$layer,$x,$y,$text,$font,$size,$colour,$angle) = @_;
    gimp_palette_set_foreground ($colour);
#gimp_text_fontname(img,drawable,x,y,text,border,antialias,size,sizetype,fontname)
    my $text_layer = gimp_text_fontname($img,$layer,$x,$y,$text,2,1,$size,0,$font);
	if($angle)
		{
		$text_layer = gimp_rotate($text_layer,1,$angle);
		#plug_in_rotate(1,$img,$text_layer,3,FALSE);
		}
	#gimp_floating_sel_relax($text_layer,1);
	#gimp_floating_sel_anchor($text_layer);
	gimp_floating_sel_attach($text_layer,$layer);
	gimp_selection_clear ($img);
   	return $text_layer;
    }

###################### END GIMP PERL ################################

On Thu, 28 Dec 2000, Marc Lehmann wrote:

> On Thu, Dec 28, 2000 at 06:42:40PM +0530, Chetan Dhavse <cdhavse@xxxxxxxx> wrote:
> > Subroutine gimp_text_get_extents_fontname redefined at /opt/other/src/perl-5.6.0/lib/site_perl/5.6.0/i686-linux/Gimp.pm line 539.
> > Subroutine gimp_bucket_fill redefined at /opt/other/src/perl-5.6.0/lib/site_perl/5.6.0/i686-linux/Gimp.pm line 539.
> > 
> > Sorry but I am lost. The same warnings are for almost all the function
> 
> this is very strange but is most probably a problem with your script
> (double fork or something similar) - how do you start your script, and can
> you send a stripped-down version of your script that shows this error?
> 
> > The plug in "plug_in_autocrop" gives the following error if I use
> > plug_in_autocrop(1,$img,$layer); (as mentioned in DB browers)
> 
> Certainly this is nowhere mentioned in DB browers, where did you get the "1"
> from? Hardcoding constants is going to bite you. Either use
> RUN_NONINTERACTIVE (or RUN_INTERACTIVE) or, better, just leave our the
> unnecessary arguments, e.g.:
> 
> plug_in_autocrop($img,$layer);
> plug_in_autocrop($layer);
> 
> or even
> 
> $layer->autocrop;
> 
> > but works fine if I use
> > 
> > plug_in_autocrop(1,$layer);
> 
> Because 1 happens to be a valid image id. The first agrument is the
> run_mode, which must be on the the three symbolic RUN_*-constants. The
> second agrument must be an image and the third a layer. It happens thta
> you can leave out the first two agruments, since they are redundant (no
> runmode == noninteractive and a layer always belongs to some image).
> 
> This could also solve your problems above, since 5.6.0 is rather broken
> with regards to error handling (this has been fixed in later snapshots, so
> best use 5.005_03 or a current perl snapshot if you want sensible error
> reporting) so the above could just be the effect of a runtime error that
> doers not get reported but instead garbles perl's internal state.
> 



[Index of Archives]     [Video For Linux]     [Photo]     [Yosemite News]     [gtk]     [GIMP for Windows]     [KDE]     [GEGL]     [Gimp's Home]     [Gimp on GUI]     [Gimp on Windows]     [Steve's Art]

  Powered by Linux