in reply to Re^3: Can't call method "scaleY" on an undefined value at C:/strawberry/perl/site/lib/ Image/Seek.pm line 137.
in thread Can't call method "scaleY" on an undefined value at C:/strawberry/perl/site/lib/ Image/Seek.pm line 137.

Did you compile in JPEG support?

Early in my make output:

gif: includes not found - libraries not found ungif: includes not found - libraries not found jpeg: includes not found - libraries not found <-- png: includes not found - libraries not found tiff: includes not found - libraries not found freetype2: includes not found - libraries not found freetype2: not available T1-fonts: includes not found - libraries not found TT-fonts: includes not found - libraries not found w32: includes found - libraries found

So no JPEG support for me.

  • Comment on Re^4: Can't call method "scaleY" on an undefined value at C:/strawberry/perl/site/lib/ Image/Seek.pm line 137.
  • Download Code

Replies are listed 'Best First'.
Re^5: Can't call method "scaleY" on an undefined value at C:/strawberry/perl/site/lib/ Image/Seek.pm line 137.
by Anonymous Monk on Jul 29, 2009 at 22:32 UTC

    Yes, this is correct. This appears to be the issue with my installation of Strawberry PERL for me too and is probably the root cause of the error in the title of this post.

    So I found a post comment by Tony Snow, the author of the Imager Perl module. He reports that Window's user should probably install the image extension libraries from their GNUWin32 versions. He then recommends installing Imager manually and pointing the Makefile.PL to the the library locations such as the GNUWin32 version of the JPEG library.

    I have installed the library for jpegs, but I don't know how to point the Makefile.PL to the JPEG library. Does anybody have a suggestion for how to do this? It is not immediately apparent to me, looking over the Makefile.PL file where it's looking for libraries.

    Sinan Ünür is also helping me with this over at Stack Overflow, although the test script he suggested reported an existing PNG support even though no JPEG support was supposedly installed. This message from the test script counters the subsequent message I got from trying to install the Imager 0.67 module manually. Additionally, even after changing all my 2000+ images to PNG and then running my two database building images with appropriate instances changed in the code from JPEG to PNG, the results with my two database filling scripts, are the same errors:

    "Can't call method "scaleY" on an undefined value at C:/strawberry/perl/site/lib/ Image/Seek.pm line 137."

      I mean Tony Cook not Tony Snow...

      If you've now installed libjpeg, including both the header files and libraries you can point Imager's Makefile.PL at them by setting the IM_INCPATH and IM_LIBPATH environment variables, eg:

      set IM_INCPATH=c:\installed\include set IM_LIBPATH=c:\installed\lib perl Makefile.PL

      or you can supply them on the command-line:

      perl Makefile.PL --incpath=c:\installed\include --libpath=c:\installed +\lib

      (I wondered who that Tony Snow guy was... ;)

        So of nice you to stop in.

        So I installed the GNUWIN32 PNG and JPEG libraries and then sent this instruction to the command:

        perl Makefile.PL --incpath="C:\Program Files\GnuWin32\installed\includ +e" --libpath="C:\Program Files\GnuWin32\installed\lib"

        The message now is:

        jpeg: includes found - libraries not found png: includes found - libraries not found

        Here's the dir of "C:\Program Files\GnuWin32\installed\lib"

        12,800 jpeg-bcc.lib 3,568 jpeg.def 24,220 jpeg.lib 64,620 libjpeg.dll.a 29,696 libpng-bcc.lib 48,640 libpng.dll.a 995 libpng.la 51,878 libpng.lib 4,645 libpng12.def 48,706 libpng12.dll.a 995 libpng12.la pkgconfig

        Any ideas? The makedb.pl script still gives the error:

        "Can't call method "scaleY" on an undefined value at C:/strawberry/per +l/site/lib/ Image/Seek.pm line 112.

        The error gives a different line number then the original post title because I reinstalled Image::Seek 0.1 instead of the 0.2 version. The latter has a few extra lines of code.