Software error:
Can't load 'C:/perl/site/lib/auto/Image/Magick/Magick.dll' for module Image::Magick: load_file:The specified module could not be found at C:/perl/lib/DynaLoader.pm line 202.
at C:/myweb/cgi-bin/uploadmultiple.pl line 6
Compilation failed in require at C:/myweb/cgi-bin/uploadmultiple.pl line 6.
BEGIN failed--compilation aborted at C:/myweb/cgi-bin/uploadmultiple.pl line 6.
it seems that the script couldn't find the Magick package, but it is working good if i use Image::Magick package in a script which run under terminal...
the beginning of my code is like following:
#!c:/perl/bin/perl
use strict;
use CGI;
use CGI::Carp qw (fatalsToBrowser);
use Image::Magick;
...........
can anyone help me out... thx~~~
Start with baby steps, what's the rest of this story?
but it is working good if i use Image::Magick package in a script which run under terminal...
So you're able to include the use package directive, but are you putting the methods you're using in the working script inside this terminal script?
I'm guessing you are using an ImageMagick method in your working script for which the proper libraries are not installed. ImageMagick has tons of libraries and can have the "appearance" of a proper install, but will be missing some features if they are not all installed.
To debug, take each specific function and isolate it in your command line script, hard-code known variables in so you can isolate the problem. Example:
$original_image='/full/path/to/some_big_image.jpg';
$thumbnail='/full/path/to/this_is_the_thumb.jpg';
$new_width=100; #pixels
## if called from a browser, uncomment
#print "content-type: text/html\n\n";
$pic = Image::Magick->new;
$x = $pic->Read("$original_image");
$type=$pic->GetAttribute('mime');
print "original is $type <br>\n";
$height=$pic->GetAttribute('height');
$width= $pic->GetAttribute('width');
print "H: $height W: $width <br>\n";
$newheight=int(($new_width * $height) / $width);
$newwidth=$new_width; ## redundant, but when you add to a sub it will make sense
print "new width: $newwidth New height: $newheight <br>\n";
$pic->Scale(geometry=>"${newwidth}x${newheight}");
$pic->Write("$thumbnail");
print "Done, $thumbnail was created <br>\n";
As the script executes, if it dies anywhere, you are one step closer to a solution.