Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^2: Merge multiple BMP images into ICO files

by jimbojones (Friar)
on Mar 22, 2007 at 13:24 UTC ( #606014=note: print w/ replies, xml ) Need Help??


in reply to Re: Merge multiple BMP images into ICO files
in thread Merge multiple BMP images into ICO files

Hi

Thanks for the suggestion. Imager looked quite promising, but it seems to do its .ico processing using a XS backend .dll that I won't be able to use on other OSs.

Unfortunately I think I need a pure-Perl solution.

- j


Comment on Re^2: Merge multiple BMP images into ICO files
Download Code
Replies are listed 'Best First'.
Re^3: Merge multiple BMP images into ICO files
by 5mi11er (Deacon) on Mar 22, 2007 at 14:20 UTC
    I think you're incorrect about needing a .dll file. I've used imager on a few linux boxes, and though I've never needed to do much with .ico files, I've been more than pleased with having chosen that package to work with.

    -Scott

      Hi

      I based that comment on seeing the following pulled down from ActiveState PPM:

      Installing C:\Progra~1\Perl\Perl586_811\site\lib\auto\Imager\File\ICO\ +ICO.dll
      So at least for the .ico support, it seems to need a .dll.

      Thanks, J

        Large parts of Imager are written in XS, which is mostly C with some Perl macros. On Win32, XS gets compiled into .dll files. On other platforms, it gets compiled into whatever format dynamically loadable libraries have. You can find out the filename extension for a platform by inspecting the output of perl -V:so on that platform:

        Win32:

        Q:\>perl -V:so so='dll';

        Solaris:

        $ perl -V:so so='so';

        The ICO.dll (or ICO.so, or ICO.bundle) is created during the build process. All of the code Imager requires to support ICO is part of Imager (most of the format support is in ICO/msicon.c).

        The structure of images inside an ICO file is similar enough to BMP that you could probably write a simple script (or module) to do the conversion. One issue is that .ico doesn't allow compressed images, but you could test for that, since you need to parse the bmp header for the image size anyway.

        No, XS means C code; see Corion's reply below.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://606014]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (12)
As of 2015-07-31 19:55 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (280 votes), past polls