about summary refs log tree commit diff
path: root/lib/libpamcolor.c
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2006-12-24 18:19:22 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2006-12-24 18:19:22 +0000
commit958d2b758ce55a01af8f926c5a6c450ba2620805 (patch)
tree294e5be056d4ba9a0e9f6e55bcee84583fd213c3 /lib/libpamcolor.c
parent1dcdceadbc56a51c209628498d0edcf62c7fdce8 (diff)
downloadnetpbm-mirror-958d2b758ce55a01af8f926c5a6c450ba2620805.tar.gz
netpbm-mirror-958d2b758ce55a01af8f926c5a6c450ba2620805.tar.xz
netpbm-mirror-958d2b758ce55a01af8f926c5a6c450ba2620805.zip
Add pnm_colorname()
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@175 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/libpamcolor.c')
-rw-r--r--lib/libpamcolor.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/libpamcolor.c b/lib/libpamcolor.c
index e11415ca..ef8546b3 100644
--- a/lib/libpamcolor.c
+++ b/lib/libpamcolor.c
@@ -11,6 +11,10 @@
 #define _FILE_OFFSET_BITS 64
 #define _LARGE_FILES  
 
+#define _BSD_SOURCE 1      /* Make sure strdup() is in string.h */
+#define _XOPEN_SOURCE 500  /* Make sure strdup() is in string.h */
+
+#include <string.h>
 #include <limits.h>
 
 #include "pm_c_util.h"
@@ -44,6 +48,34 @@ pnm_parsecolor(const char * const colorname,
 
 
 
+const char *
+pnm_colorname(struct pam * const pamP,
+              tuple        const color,
+              int          const hexok) {
+
+    const char * retval;
+    pixel colorp;
+    char * colorname;
+
+    if (pamP->depth < 3)
+        PPM_ASSIGN(colorp, color[0], color[0], color[0]);
+    else 
+        PPM_ASSIGN(colorp,
+                   color[PAM_RED_PLANE],
+                   color[PAM_GRN_PLANE],
+                   color[PAM_BLU_PLANE]);
+
+    colorname = ppm_colorname(&colorp, pamP->maxval, hexok);
+
+    retval = strdup(colorname);
+    if (retval == NULL)
+        pm_error("Couldn't get memory for color name string");
+
+    return retval;
+}
+
+
+
 double pnm_lumin_factor[3] = {PPM_LUMINR, PPM_LUMING, PPM_LUMINB};
 
 void