]> granicus.if.org Git - imagemagick/blobdiff - coders/hald.c
Accommodate background color index in PLTE chunk
[imagemagick] / coders / hald.c
index 969beb7b93152a25f39c4539c104f03fc29825ec..fddddd6512f204e220d8c4106e5f4e47b107a74b 100644 (file)
 #include "MagickCore/monitor-private.h"
 #include "MagickCore/pixel-accessor.h"
 #include "MagickCore/quantum-private.h"
+#include "MagickCore/resource_.h"
 #include "MagickCore/static.h"
 #include "MagickCore/string_.h"
 #include "MagickCore/string-private.h"
+#include "MagickCore/thread-private.h"
 \f
 /*
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -123,6 +125,10 @@ static Image *ReadHALDImage(const ImageInfo *image_info,
   cube_size=level*level;
   image->columns=(size_t) (level*cube_size);
   image->rows=(size_t) (level*cube_size);
+#if defined(MAGICKCORE_OPENMP_SUPPORT)
+  #pragma omp parallel for schedule(static,8) shared(status) \
+    dynamic_number_threads(image,image->columns,image->rows,1)
+#endif
   for (y=0; y < (ssize_t) image->rows; y+=(ssize_t) level)
   {
     ssize_t
@@ -148,8 +154,8 @@ static Image *ReadHALDImage(const ImageInfo *image_info,
       for (red=0; red < (ssize_t) cube_size; red++)
       {
         SetPixelRed(image,ClampToQuantum(QuantumRange*red/(cube_size-1.0)),q);
-        SetPixelGreen(image,ClampToQuantum(QuantumRange*green/
-          (cube_size-1.0)),q);
+        SetPixelGreen(image,ClampToQuantum(QuantumRange*green/(cube_size-1.0)),
+          q);
         SetPixelBlue(image,ClampToQuantum(QuantumRange*blue/(cube_size-1.0)),q);
         SetPixelAlpha(image,OpaqueAlpha,q);
         q+=GetPixelChannels(image);