Page 1 of 1

Who can help me?

Posted: 2010-09-12T11:02:39-07:00
by userman
Hi,

I am new here, i have a mini script but the script dont work in my server. The script for gif animation dont work, but the script for png only yes work. I dont know why.

I use ImageMagick 6.2.8

Who can check it for fix it please. I can pay a little dolars via paypal if you want it.

Code: Select all

<?
$surse = "123qwertyu456789QWERThjklzYUIOPAxcvSDFGHVBNMiopasdfgbnmJKLZXC"; 

for ($i = 0; $i <15; $i++) 
    { 
     $newsurse[$i] = $surse[rand(0,60)];
	 $newsurse2[$i] = $surse[rand(0,60)];
    } 
	
   	$png = 'temp/'.implode("",$newsurse).'.png';
   	$gif = 'temp/'.implode("",$newsurse2).'.gif';
exec('convert '.$imagesurse2.' -resize 170!x188! '.$imagesurse2.'');

exec("convert ".$patch."/mask.png  ".$imagesurse2." +clone -compose hardlight -composite ".$png);
exec('convert '.$patch.'/template.gif  null: '.$png.'  -geometry +50+5 -layers Composite '.$gif.'');

@unlink($imagesurse2);
@unlink($png);
$imagesurse2=$gif;
?>

Re: Who can help me?

Posted: 2010-09-12T11:14:26-07:00
by Bonzo
In what way does it not work?

This line is incorrect as you need to escape the '

Code: Select all

exec('convert '.$patch.'/template.gif  null: '.$png.'  -geometry +50+5 -layers Composite '.$gif.'');
I would guess it needs to be:

Code: Select all

exec("convert '.$patch.'/template.gif  null: '.$png.'  -geometry +50+5 -layers Composite '.$gif.' ");
I would write it as:

Code: Select all

exec("convert $patch/template.gif  null: $png  -geometry +50+5 -layers Composite $gif ");

Re: Who can help me?

Posted: 2010-09-12T11:21:16-07:00
by userman
I get the error:

PHP Warning: getimagesize(temp/YaOV8qgm8ZFlN5L.gif) [<a href='function.getimagesize'>function.getimagesize</a>]: failed to open stream: No such file or directory in /home/web/generate.php on line 36, referer: http://www.domain.com/image.php

I think that the script dont generate the .gif ...

The problem can be the version of imagemagick?

and the script for png only yes work:

Code: Select all

<?
$surse = "123qwertyu456789QWERThjklzYUIOPAxcvSDFGHVBNMiopasdfgbnmJKLZXC"; 

for ($i = 0; $i <15; $i++) 
    { 
     $newsurse[$i] = $surse[rand(0,60)];
	 $newsurse2[$i] = $surse[rand(0,60)];
    } 
   
   	$jpg = 'temp/'.implode("",$newsurse).'.jpg';
exec('convert '.$imagesurse2.' -resize 265!x333! '.$imagesurse2.'');

exec("convert  ".$patch."/banner104.png  ".$imagesurse2." -geometry +93+185 -compose DstOver -composite  ".$jpg);
exec('convert '.$jpg.' -quality 60 '.$jpg);
@unlink($imagesurse2);
$imagesurse2=$jpg;
?>

Re: Who can help me?

Posted: 2010-09-12T11:53:09-07:00
by Bonzo
Try echoing your values to see they are what you expect and add some error reporting to the exec commands:

I do not like the way you write your code as it is very confusing and the problem is probably using ' and " everywhere. For instance this line exec("convert ".$patch."/banner104.png ".$imagesurse2." -geometry +93+185 -compose DstOver -composite ".$jpg); is missing a " before the ); and I think the " need escaping anyway.

Code: Select all

<?
$surse = "123qwertyu456789QWERThjklzYUIOPAxcvSDFGHVBNMiopasdfgbnmJKLZXC"; 

for ($i = 0; $i <15; $i++) 
    { 
     $newsurse[$i] = $surse[rand(0,60)];
    $newsurse2[$i] = $surse[rand(0,60)];
    } 
   
      $jpg = 'temp/'.implode("",$newsurse).'.jpg';

$array=array();
echo "<pre>";
$cmd = " $imagesurse2 -resize 265!x333! ";
exec("convert $cmd $imagesurse2 2>&1", $array); 
echo "<br>".print_r($array)."<br>"; 
echo "</pre>";

$array=array();
echo "<pre>";
$cmd = " $patch/banner104.png  $imagesurse2 -geometry +93+185 -compose DstOver -composite  ";
exec("convert $cmd $jpg 2>&1", $array); 
echo "<br>".print_r($array)."<br>"; 
echo "</pre>";

// Why do you have this line - you can add it to the one above?
exec('convert '.$jpg.' -quality 60 '.$jpg);

@unlink($imagesurse2);

// Again why this line ? if you saved as this above it would overwrite $imagesurse2 anyway
$imagesurse2=$jpg;
?>
Try getting something simple working first by hard coding the files into the code and move onto the dynamic part when it works.

Re: Who can help me?

Posted: 2010-09-12T12:13:02-07:00
by userman
Bonzo, you dont understand me.

Sorry for my bad english.

I have 2 scripts, 1 for png only and another for gif animation. the script for png only WORK good, but the script for gif animation DONT WORK...

before I copy here the 2 scripts...

Re: Who can help me?

Posted: 2010-09-13T12:11:50-07:00
by userman
I have fixed.

Solution:

Update from ImageMagick 6.2.8 to ImageMagick 6.6.4


Regards