Page 1 of 1

Posted: 2006-04-24T09:47:17-07:00
by magick
ImageMagick is thread safe on a per image per thread basis-- one image processing operation per image per thread. We added a patch to ImageMagick 6.2.7-2 Beta to make the composite, draw, annotate, and crop operations thread safe if each thread performs in a separate area of the image. For example you can composite into the four corners of an image in separate concurrent threads. To ensure predictibility, the composite areas should not overlap.

ImageMagick 6.2.7-2 Beta will be available sometime tommorrow in ftp://ftp.imagemagick.org/pub/ImageMagick/beta. If you discover other operations that you want to be thread-safe at a subimage level, let us know.

Posted: 2006-04-24T15:32:58-07:00
by magick
It is quite simple to upgrade any method to be thread-safe. We must use cache views rather than the default Acquire/GetImagePixels(). The problem is that there are thousands of places within the ImageMagick that need to be tweaked. So for now we'll make methods thread-safe on demand. One solution would be to post a short segment of source code and we'll see if we can make it thread safe or if you are directly accessing pixels in an image, use Acquire/GetCacheView() instead of Acquire/GetImagePixels().

Posted: 2006-04-25T07:01:36-07:00
by magick
Thanks, however, we need a complete program that we can download, compile, and run. Alternatively, try 6.2.7-2 yourself. We suspect it will work in a threaded environment.

Posted: 2006-04-27T11:43:18-07:00
by magick
We're using the latest ImageMagick 6.2.7-2 Beta and your program has been running all day without any problems. We periodically issue a
  • identify -verbose test*bmp | grep -i sign
command to ensure the pixel signatures match. We will continue running your program and you will hear back from us if it fails for any reason.