egami
C++ Image Processing program
|
00001 #include <algorithm> 00002 #include <memory> 00003 #include <string> 00004 00005 #include <gtkmm/image.h> 00006 00007 #include "../display_unit.hpp" 00008 #include "../processing_page.hpp" 00009 #include "../processing_unit.hpp" 00010 #include "../utils.hpp" 00011 00012 namespace{ 00013 Display_unit* impl(const Image_unit *in){ 00014 Image_unit *out(new Image_unit(*in)); 00015 for(Image_unit::iterator it=out->begin(); it!=out->end(); ++it) 00016 *it={ (it->r+it->g+it->b)/3 }; 00017 return out; 00018 } 00019 } 00020 00021 namespace Processes{ 00022 void grayscalify(){ 00023 Gtk::Image icon(cmake_install_prefix+std::string("/share/egami/icons/grayscalify.png")); 00024 std::shared_ptr<Processing_unit> pu(new Processing_unit(Processing(&impl), "Grayscalify", icon, false)); 00025 Processing_page::add_unit_to_page("Colours", pu); 00026 } 00027 }