Enlightenment CVS committal

Author  : titan
Project : e17
Module  : apps/ephoto

Dir     : e17/apps/ephoto/src/bin


Modified Files:
        ephoto.h ephoto_edit_view.c ephoto_imaging.c 


Log Message:
Ephoto can now convert images to black and white. The filter is under 
the 
advanced tools in the edit view.

===================================================================
RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- ephoto.h    19 May 2007 16:59:09 -0000      1.21
+++ ephoto.h    22 May 2007 23:04:02 -0000      1.22
@@ -85,6 +85,7 @@
 unsigned int *rotate_right(Ewl_Widget *image);
 unsigned int *blur_image(Ewl_Widget *image);
 unsigned int *sharpen_image(Ewl_Widget *image);
+unsigned int *grayscale_image(Ewl_Widget *image);
 void update_image(Ewl_Widget *image, int w, int h, unsigned int *data);
 void save_dialog(const char *file);
 
===================================================================
RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_edit_view.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -3 -r1.21 -r1.22
--- ephoto_edit_view.c  14 May 2007 21:54:05 -0000      1.21
+++ ephoto_edit_view.c  22 May 2007 23:04:02 -0000      1.22
@@ -14,6 +14,7 @@
 static void rotate_image_right(Ewl_Widget *w, void *event, void *data);
 static void image_blur(Ewl_Widget *w, void *event, void *data);
 static void image_sharpen(Ewl_Widget *w, void *event, void *data);
+static void image_grayscale(Ewl_Widget *w, void *event, void *data);
 
 /*Add the edit view*/
 Ewl_Widget *add_edit_view(Ewl_Widget *c)
@@ -139,6 +140,11 @@
         ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT);
         ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_HFILL);
 
+       button = add_button(c, "Black and White", NULL, image_grayscale, NULL);
+       ewl_button_image_size_set(EWL_BUTTON(button), 30, 30);
+        ewl_object_alignment_set(EWL_OBJECT(button), EWL_FLAG_ALIGN_LEFT);
+        ewl_object_fill_policy_set(EWL_OBJECT(button), EWL_FLAG_FILL_HFILL);
+
        return;
 }
 
@@ -313,3 +319,16 @@
         return;
 }
 
+/*Convert image to Black and White*/
+static void image_grayscale(Ewl_Widget *w, void *event, void *data)
+{
+       unsigned int *image_data;
+       int nw, nh;
+
+       evas_object_image_size_get(EWL_IMAGE(em->eimage)->image, &nw, &nh);
+       image_data = grayscale_image(em->eimage);
+       update_image(em->eimage, nw, nh, image_data);
+       ewl_widget_configure(em->eimage->parent);
+
+       return;
+}
===================================================================
RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_imaging.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- ephoto_imaging.c    18 May 2007 21:47:24 -0000      1.11
+++ ephoto_imaging.c    22 May 2007 23:04:02 -0000      1.12
@@ -280,6 +280,30 @@
        return im_data_new;
 }
 
+unsigned int *grayscale_image(Ewl_Widget *image)
+{
+        unsigned int *im_data, *im_data_new;
+        int gray, i, r, g, b, a, ew, eh;
+
+        im_data = evas_object_image_data_get(EWL_IMAGE(image)->image, FALSE);
+        evas_object_image_size_get(EWL_IMAGE(image)->image, &ew, &eh);
+
+        im_data_new = malloc(sizeof(unsigned int) * ew * eh);
+
+        for (i = 0; i < (ew * eh); i++)
+        {
+               b = (int)((im_data[i]) & 0xff);
+               g = (int)((im_data[i] >> 8) & 0xff);
+               r = (int)((im_data[i] >> 16) & 0xff);
+               a = (int)((im_data[i] >> 24) & 0xff);
+
+               gray = (int)((0.3 * r) + (0.59 * g) + (0.11 * b));
+       
+               im_data_new[i] = (gray << 24) | (gray << 16) | (gray << 8) | 
gray;
+        }
+        return im_data_new;
+}
+
 void update_image(Ewl_Widget *image, int w, int h, unsigned int *data)
 {
        if (w && h && !data)



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to