http://www.perlmonks.org?node_id=606029


in reply to Merge multiple BMP images into ICO files

imagemagick, mogrify, convert ? It's really smelling like 'convert' here.

They have ICO listed as a supported format.

  • Comment on Re: Merge multiple BMP images into ICO files

Replies are listed 'Best First'.
Re^2: Merge multiple BMP images into ICO files
by jimbojones (Friar) on Mar 22, 2007 at 15:01 UTC
    Hi

    Yes, ImageMagick would do what I want, but I don't want to have to build bindings for ImageMagick across multiple OSs.

    This may be an X-Y problem. The issue is that this is for an in-house build for an Eclipse Rich Client Platform Application. For Eclipse RCP, you can build all OS applications on one system, because the "executable" is really a bundled launcher. So the Eclipse folks give you the executable for all OSs in the Eclipse bundle, and you copy it to the name of your application. The executable then loads your Rich Client Application java code . So concievably, you can build Win32, linux, sparc, hp-ux Rich Client applications all from a Mac OS X machine (for example).

    The trick is that the windows executable has the icon embedded in it, and I'm trying to figure out how to change the icon in the executable. Win32::Exe can change the icon of a windows executable given an .ico file, and seems to be pure Perl. However, I have a set of .bmp files that need to be converted to .ico, then I can embed them.

    Eventually we may distribute this setup to other people/systems and the requirement to have/install/build ImageMagick side task seems a bit like overkill. But then again, I can't spend days looking into it, so ImageMagick might have to do.

    Thanks for the input. - J

      There's this book I'm reading.. called why things bite back. It has some good examples of when the solutions we create for everyday problems, bring new problems.

        Hi

        Yes, this is certainly biting back. The Eclipse "export RCP Application" button in the IDE works great. But does way too much under the hood. I'm in the process of trying to figure out what exactly it is doing so that I can automate it without having to have the entire Eclipse Platform installed everywhere I want to do a build (I should only need the libraries, which is a much small set of code).

        Thanks, J

      It may be slightly simpler to skip the "build perl bindings for ImageMagick for each platform" step, and use the command-line magick tools. While it's admirable to try to integrate the two into a monolithic tool, there comes a point when it's valuable to rely on system() and ship a small private bundle of dedicated tools.

      For example, many Mac OS X tools are starting to embed more of these tiny command-line tools into their .app packaging, unbeknownst to the user. The fact that for Darwin, an application IS a subdirectory just helps that process along, but there's no reason you can't do that with application bundles on other platforms.

      --
      [ e d @ h a l l e y . c c ]

        Hi

        I think this is the correct way to go, even though I resisted at the start. It'll just be faster.

        Thanks, - J