{"id":1266,"date":"2017-03-28T22:51:20","date_gmt":"2017-03-28T13:51:20","guid":{"rendered":"http:\/\/rageworx.info\/?p=1266"},"modified":"2017-03-28T22:51:20","modified_gmt":"2017-03-28T13:51:20","slug":"an-open-source-graphical-help-tool-library-fl_imgtk","status":"publish","type":"post","link":"https:\/\/rageworx.info\/?p=1266","title":{"rendered":"An open source graphical help tool library, fl_imgtk."},"content":{"rendered":"<p><a href=\"http:\/\/rageworx.info\/wp-content\/uploads\/2017\/03\/fl_imgtk_techdemo_20170328_0.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-1267\" src=\"http:\/\/rageworx.info\/wp-content\/uploads\/2017\/03\/fl_imgtk_techdemo_20170328_0-500x357.jpg\" alt=\"\" width=\"500\" height=\"357\" srcset=\"https:\/\/rageworx.info\/wp-content\/uploads\/2017\/03\/fl_imgtk_techdemo_20170328_0-500x357.jpg 500w, https:\/\/rageworx.info\/wp-content\/uploads\/2017\/03\/fl_imgtk_techdemo_20170328_0.jpg 700w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Here is an open source library helps many Fl_RGB_Image processing to make some featured GUI.\u00a0 You can clone or download source code in free on <a href=\"https:\/\/github.com\/rageworx\/fl_imgtk\" target=\"_blank\">GitHub page<\/a>.<\/p>\n<p>It designed to work with any type of gcc ( llvm-gcc and MinGW-W64 ) with just a copy and type &#8216;make&#8217;, or modify Makefile.{your compiler} and copy to it as Makefile, then it could be compiled and writes libfl_imgtk.a into &#8220;lib&#8221; directory includes fl_imgtk.h.<\/p>\n<h3>What you can do ?<\/h3>\n<p>It provides some features to processing Fl_RGB_Image as like Photoshop.<\/p>\n<ul>\n<li>Flip image in vertical or horizental.<\/li>\n<li>Rotate image in any degree with smoothen pixels.<\/li>\n<li>Adjusting contrast, bright and gamma.<\/li>\n<li>Drawing image to blurred ( by using fl_smimg rescaling ).<\/li>\n<li>Rescale with muliple filters ( nearest, bilinear, bicubic, lanczos, b-spline )<\/li>\n<li>Tone mapping ( HDRi ) with two different algorithms : Drago and Reinhard ( refered to FreeImage3 )<\/li>\n<li>Kernel matrix filtering ( basically supports blur, blur more, sharpen, sharpen more filters)<br \/>\nSpecially any user can make a new kernel filter easily.<\/li>\n<li>Draw Fl_Widget to Fl_RGB_Image<\/li>\n<li>Draw Fl_Widget to blurred Fl_RGB_Image as it could be used in cool background.<\/li>\n<li>Cropping image to a part of new image.<\/li>\n<\/ul>\n<h3>Building<\/h3>\n<p>Before you start with this open source library, prepare what FLTK library compiled or installed in your system. I amd working my <a href=\"https:\/\/github.com\/rageworx\/fltk-1.3.4-1-ts\" target=\"_blank\">clone version of FLTK 1.3.4-1<\/a>.<\/p>\n<p>First you need to do, download or cloen with your git into your working directoy. Then, copy Makefile.{your compiler} to Makefle. ( ex, cp Makefile.gcc Makefile )<\/p>\n<p>Now just proceeding make.<\/p>\n<p>If you faced to unknown reference of FLTK libraries, you may need edit Makefile.<\/p>\n<pre class=\"lang:vim decode:true\" title=\"Makefile.gcc\"># Makefile for fl_imgtk\r\n# (C)2017 Raphael Kim \/ rageworx@gmail.com\r\n#\r\n\r\n#########################################################################\r\n# About cross compiler, or other platform :\r\n#\r\n# To enable build for embedded linux, you may encomment next 2 lines.\r\n# Or, may need to change your cross compiler path with environments.\r\n# It is up to developer !\r\n\r\n# CCPREPATH = ${ARM_LINUX_GCC_PATH}\r\n# CCPREFIX  = arm-linux-\r\n\r\n# To enable build for embedded linux, change following line.\r\n# CCPATH    = ${CCPREPATH}\/${CCPREFIX}\r\nCCPATH =\r\n#########################################################################\r\n\r\n# Compiler configure.\r\nGCC = ${CCPATH}gcc\r\nGPP = ${CCPATH}g++\r\nAR  = ${CCPATH}ar\r\n\r\n# FLTK place\r\nFLTKDIR    = \/usr\/include\r\nFLTKLIBDIR = \/usr\/lib\r\nFLTKLIBS   = -L$(FLTKLIBDIR) -lfltk -lfltk_images -lfltk_png -lfltk_jpeg\r\n\r\n# Sources and how it built\r\n# Optimization issue: recommend to build with using -ffast-math option.\r\n# Change if your CPU architecture supports more high technologies.\r\nINCDIR    = .\/inc\r\nSOURCEDIR = .\/src\r\nOBJDIR    = .\/obj\/Release\r\nOUTBIN    = libfl_imgtk.a\r\nOUTDIR    = .\/lib\r\nDEFINEOPT = -DUSING_INTERPOLATED_ROTATE_FREE -DUSING_OMP\r\nOPTIMIZEOPT = -ffast-math -fopenmp -O3 -s\r\nCPUARCHOPT    = -mavx\r\n\r\nifeq (64bit,$(firstword $(MAKECMDGOALS)))\r\n\tOBJDIR = .\/obj64\/Release\r\n\tOUTDIR = .\/lib64\r\n\tCPUARCHOPT += -m64\r\nendif\r\n\r\nifeq (debug,$(firstword $(MAKECMDGOALS)))\r\n\tDEFINEOPT += -DDEBUG\r\n\tOUTBIN = libfl_imgtk_d.a\r\nendif\r\n\r\nCFLAGS    = -I$(INCDIR) -I$(SOURCEDIR) -I$(FLTKDIR) $(DEFINEOPT) $(OPTIMIZEOPT) $(CPUARCHOPT) $(BITSOPT) $(FLTKLIBS)\r\n\r\n.PHONY: 64bit\r\n\r\nall: prepare clean ${OUTDIR}\/${OUTBIN}\r\n\r\n64bit: all\r\ndebug: all\r\n\r\nprepare:\r\n\t@mkdir -p ${OBJDIR}\r\n\t@mkdir -p ${OUTDIR}\r\n\r\n${OBJDIR}\/fl_imgtk_tonemap.o:\r\n\t@$(GPP) -c ${SOURCEDIR}\/fl_imgtk_tonemap.cpp ${CFLAGS} -o $@\r\n\r\n${OBJDIR}\/fl_smimg.o:\r\n\t@$(GPP) -c ${SOURCEDIR}\/fl_smimg.cpp ${CFLAGS} -o $@\r\n\r\n${OBJDIR}\/fl_imgtk.o:\r\n\t@$(GPP) -c ${SOURCEDIR}\/fl_imgtk.cpp ${CFLAGS} -o $@\r\n\r\n\r\n${OUTDIR}\/${OUTBIN}: ${OBJDIR}\/fl_imgtk_tonemap.o ${OBJDIR}\/fl_smimg.o ${OBJDIR}\/fl_imgtk.o\r\n\t@echo \"Generating $@ ...\"\r\n\t@$(AR) -q $@ ${OBJDIR}\/*.o\r\n\t@cp -f ${INCDIR}\/fl_imgtk.h ${OUTDIR}\r\n\r\nclean:\r\n\t@echo \"Cleaning built directories ...\"\r\n\t@rm -rf ${OBJDIR}\/*\r\n@rm -rf ${OUTDIR}\/${OUTBIN}<\/pre>\n<p>You can changes FLTK_xxx configuration to your right place. It will works well any platform that availed to compile FLTK library.<\/p>\n<h3>Any question ?<\/h3>\n<p>You can make a new issue on my GitHub page, or my Guest book on my blog.<\/p>\n<p>&nbsp;<\/p>\n<h3>License<\/h3>\n<ul>\n<li>MIT License<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h3>External Licenses<\/h3>\n<ul>\n<li>FLTK license<\/li>\n<li>FreeImage (3) license.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Here is an open source library helps many Fl_RGB_Image processing to make some featured GUI.\u00a0 You can clone or download source code in free on GitHub page. It designed to work with any type of gcc ( llvm-gcc and MinGW-W64 ) with just a copy and type &#8216;make&#8217;, or modify&#8230; <a href=\"https:\/\/rageworx.info\/?p=1266\">Read more &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3],"tags":[71,475,195,474,473,472],"class_list":["post-1266","post","type-post","status-publish","format-standard","hentry","category-development","category-raphs","tag-fltk","tag-free","tag-image","tag-library","tag-open-source","tag-toolkit"],"_links":{"self":[{"href":"https:\/\/rageworx.info\/index.php?rest_route=\/wp\/v2\/posts\/1266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rageworx.info\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rageworx.info\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rageworx.info\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rageworx.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1266"}],"version-history":[{"count":0,"href":"https:\/\/rageworx.info\/index.php?rest_route=\/wp\/v2\/posts\/1266\/revisions"}],"wp:attachment":[{"href":"https:\/\/rageworx.info\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rageworx.info\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rageworx.info\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}