Using -fx 'v' is VERY slow.
A faster way to tile an image over an existing image is to use -draw.
Code: Select all
convert aqua_font.png -tile texture_fabric.gif -draw 'color 0,0 reset' tile_filled_image.png
Note that the alpha channel does not need to be cleared. But you are limited to a simple tile method, you do not have access to the various virtual pixel settings to define different types of tiling styles such as 'Mirror' or 'CheckerTile' (which was fixed/added resp. in IM v6.5.0-1)
The only problem with this is that -tile only takes an external 'coder' provided image. If the image to be tiles is in-memory, you will need to set it using an MPR: register.
See Tiling Images
http://www.imagemagick.org/Usage/canvas/#tile
More specifically, Tiling in-memory images,
http://www.imagemagick.org/Usage/canvas/#tile_memory
Another FAST method but one which may be too new, is to use a viewport distort. This also allows you to distort the image tiling in various ways.
Code: Select all
convert aqua_font.png -set option:distort:viewport '%g' + delete\
texture_fabric.gif -virtual-pixel tile -distort SRT 0 tile_filled_image.png
See
http://www.imagemagick.org/Usage/distor ... t_viewport
And distorted tiling in Affine Tiling
http://www.imagemagick.org/Usage/distorts/#affine_tile
Note that the viewport is set using one image but then applied to a completely different image!
This is actually a bit of a kludge and relies on knowledge of how IM handles settings when new images are read in.
ASIDE:
Normally the setting is calculated and set to each image currently in memory (only the one image in this case), but new images will inherited the previously calculated (and thus possibility wrong) setting from previous images (even if they are all deleted as in the above!). This relies on that setting inheritance, and thus a bit of a 'kludge', as the setting was not directly assigned to the image being distorted.
I'll add an example of this technique to the previous 'in-memory tiling' section, for virtual pixel tiling.