pikl 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +9 -0
 - data/License.txt +0 -0
 - data/Manifest.txt +17 -17
 - data/README.txt +0 -0
 - data/config/hoe.rb +9 -6
 - data/config/requirements.rb +0 -0
 - data/ext/pikl/extconf.rb +0 -0
 - data/ext/pikl/pikl.h +617 -465
 - data/ext/pikl/pikl_affine.c +38 -91
 - data/ext/pikl/pikl_affine.h +0 -0
 - data/ext/pikl/pikl_bitmap.c +0 -0
 - data/ext/pikl/pikl_bitmap.h +0 -0
 - data/ext/pikl/pikl_blur.c +4 -8
 - data/ext/pikl/pikl_blur.h +0 -0
 - data/ext/pikl/pikl_camera.c +218 -0
 - data/ext/pikl/{pikl_effect3.h → pikl_camera.h} +2 -2
 - data/ext/pikl/pikl_composite.c +175 -0
 - data/ext/pikl/pikl_composite.h +12 -0
 - data/ext/pikl/pikl_decrease.c +110 -45
 - data/ext/pikl/pikl_decrease.h +0 -7
 - data/ext/pikl/pikl_divide.c +116 -0
 - data/ext/pikl/pikl_divide.h +11 -0
 - data/ext/pikl/pikl_effect.c +583 -151
 - data/ext/pikl/pikl_effect.h +32 -6
 - data/ext/pikl/pikl_enhance.c +274 -0
 - data/ext/pikl/pikl_enhance.h +20 -0
 - data/ext/pikl/pikl_io.c +174 -23
 - data/ext/pikl/pikl_io.h +0 -0
 - data/ext/pikl/pikl_jpeg.c +0 -0
 - data/ext/pikl/pikl_jpeg.h +0 -0
 - data/ext/pikl/pikl_pattern.c +383 -357
 - data/ext/pikl/pikl_pattern.h +0 -0
 - data/ext/pikl/pikl_pixel.c +173 -0
 - data/ext/pikl/{pikl_trim.h → pikl_pixel.h} +2 -2
 - data/ext/pikl/pikl_png.c +0 -0
 - data/ext/pikl/pikl_png.h +0 -0
 - data/ext/pikl/pikl_private.h +12 -5
 - data/ext/pikl/pikl_resize.c +0 -0
 - data/ext/pikl/pikl_resize.h +0 -0
 - data/ext/pikl/pikl_rotate.c +409 -51
 - data/ext/pikl/pikl_rotate.h +8 -0
 - data/ext/pikl/pikl_scrap.c +263 -483
 - data/ext/pikl/pikl_scrap.h +0 -0
 - data/ext/pikl/pikl_special.c +168 -0
 - data/ext/pikl/{pikl_effect4.h → pikl_special.h} +2 -2
 - data/ext/pikl/pikl_voronoi.c +320 -0
 - data/ext/pikl/pikl_voronoi.h +37 -0
 - data/lib/pikl.rb +4 -2
 - data/lib/pikl/color.rb +47 -0
 - data/lib/pikl/const.rb +106 -22
 - data/lib/pikl/errors.rb +0 -0
 - data/lib/pikl/ext.rb +115 -8
 - data/lib/pikl/filter.rb +371 -0
 - data/lib/pikl/image.rb +124 -117
 - data/lib/pikl/version.rb +2 -2
 - data/setup.rb +0 -0
 - data/test/sample.jpg +0 -0
 - data/test/test_helper.rb +0 -0
 - data/test/test_pikl_image.rb +0 -14
 - data/test/test_pikl_image2.rb +541 -0
 - metadata +35 -23
 - data/ext/pikl/decrease/fsdither.h +0 -554
 - data/ext/pikl/decrease/median.c +0 -1179
 - data/ext/pikl/decrease/median.h +0 -7
 - data/ext/pikl/decrease/neuquan5.c +0 -563
 - data/ext/pikl/decrease/neuquant.h +0 -62
 - data/ext/pikl/decrease/wu.c +0 -447
 - data/ext/pikl/decrease/wu.h +0 -7
 - data/ext/pikl/pikl_effect2.c +0 -240
 - data/ext/pikl/pikl_effect2.h +0 -55
 - data/ext/pikl/pikl_effect3.c +0 -266
 - data/ext/pikl/pikl_effect4.c +0 -495
 - data/ext/pikl/pikl_rotate2.c +0 -312
 - data/ext/pikl/pikl_rotate2.h +0 -19
 - data/ext/pikl/pikl_trim.c +0 -28
 
    
        data/History.txt
    CHANGED
    
    
    
        data/License.txt
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        data/Manifest.txt
    CHANGED
    
    | 
         @@ -4,13 +4,6 @@ Manifest.txt 
     | 
|
| 
       4 
4 
     | 
    
         
             
            README.txt
         
     | 
| 
       5 
5 
     | 
    
         
             
            config/hoe.rb
         
     | 
| 
       6 
6 
     | 
    
         
             
            config/requirements.rb
         
     | 
| 
       7 
     | 
    
         
            -
            ext/pikl/decrease/fsdither.h
         
     | 
| 
       8 
     | 
    
         
            -
            ext/pikl/decrease/median.c
         
     | 
| 
       9 
     | 
    
         
            -
            ext/pikl/decrease/median.h
         
     | 
| 
       10 
     | 
    
         
            -
            ext/pikl/decrease/neuquan5.c
         
     | 
| 
       11 
     | 
    
         
            -
            ext/pikl/decrease/neuquant.h
         
     | 
| 
       12 
     | 
    
         
            -
            ext/pikl/decrease/wu.c
         
     | 
| 
       13 
     | 
    
         
            -
            ext/pikl/decrease/wu.h
         
     | 
| 
       14 
7 
     | 
    
         
             
            ext/pikl/extconf.rb
         
     | 
| 
       15 
8 
     | 
    
         
             
            ext/pikl/pikl.h
         
     | 
| 
       16 
9 
     | 
    
         
             
            ext/pikl/pikl_affine.c
         
     | 
| 
         @@ -19,22 +12,26 @@ ext/pikl/pikl_bitmap.c 
     | 
|
| 
       19 
12 
     | 
    
         
             
            ext/pikl/pikl_bitmap.h
         
     | 
| 
       20 
13 
     | 
    
         
             
            ext/pikl/pikl_blur.c
         
     | 
| 
       21 
14 
     | 
    
         
             
            ext/pikl/pikl_blur.h
         
     | 
| 
      
 15 
     | 
    
         
            +
            ext/pikl/pikl_camera.c
         
     | 
| 
      
 16 
     | 
    
         
            +
            ext/pikl/pikl_camera.h
         
     | 
| 
      
 17 
     | 
    
         
            +
            ext/pikl/pikl_composite.c
         
     | 
| 
      
 18 
     | 
    
         
            +
            ext/pikl/pikl_composite.h
         
     | 
| 
       22 
19 
     | 
    
         
             
            ext/pikl/pikl_decrease.c
         
     | 
| 
       23 
20 
     | 
    
         
             
            ext/pikl/pikl_decrease.h
         
     | 
| 
      
 21 
     | 
    
         
            +
            ext/pikl/pikl_divide.c
         
     | 
| 
      
 22 
     | 
    
         
            +
            ext/pikl/pikl_divide.h
         
     | 
| 
       24 
23 
     | 
    
         
             
            ext/pikl/pikl_effect.c
         
     | 
| 
       25 
24 
     | 
    
         
             
            ext/pikl/pikl_effect.h
         
     | 
| 
       26 
     | 
    
         
            -
            ext/pikl/ 
     | 
| 
       27 
     | 
    
         
            -
            ext/pikl/ 
     | 
| 
       28 
     | 
    
         
            -
            ext/pikl/pikl_effect3.c
         
     | 
| 
       29 
     | 
    
         
            -
            ext/pikl/pikl_effect3.h
         
     | 
| 
       30 
     | 
    
         
            -
            ext/pikl/pikl_effect4.c
         
     | 
| 
       31 
     | 
    
         
            -
            ext/pikl/pikl_effect4.h
         
     | 
| 
      
 25 
     | 
    
         
            +
            ext/pikl/pikl_enhance.c
         
     | 
| 
      
 26 
     | 
    
         
            +
            ext/pikl/pikl_enhance.h
         
     | 
| 
       32 
27 
     | 
    
         
             
            ext/pikl/pikl_io.c
         
     | 
| 
       33 
28 
     | 
    
         
             
            ext/pikl/pikl_io.h
         
     | 
| 
       34 
29 
     | 
    
         
             
            ext/pikl/pikl_jpeg.c
         
     | 
| 
       35 
30 
     | 
    
         
             
            ext/pikl/pikl_jpeg.h
         
     | 
| 
       36 
31 
     | 
    
         
             
            ext/pikl/pikl_pattern.c
         
     | 
| 
       37 
32 
     | 
    
         
             
            ext/pikl/pikl_pattern.h
         
     | 
| 
      
 33 
     | 
    
         
            +
            ext/pikl/pikl_pixel.c
         
     | 
| 
      
 34 
     | 
    
         
            +
            ext/pikl/pikl_pixel.h
         
     | 
| 
       38 
35 
     | 
    
         
             
            ext/pikl/pikl_png.c
         
     | 
| 
       39 
36 
     | 
    
         
             
            ext/pikl/pikl_png.h
         
     | 
| 
       40 
37 
     | 
    
         
             
            ext/pikl/pikl_private.h
         
     | 
| 
         @@ -42,16 +39,18 @@ ext/pikl/pikl_resize.c 
     | 
|
| 
       42 
39 
     | 
    
         
             
            ext/pikl/pikl_resize.h
         
     | 
| 
       43 
40 
     | 
    
         
             
            ext/pikl/pikl_rotate.c
         
     | 
| 
       44 
41 
     | 
    
         
             
            ext/pikl/pikl_rotate.h
         
     | 
| 
       45 
     | 
    
         
            -
            ext/pikl/pikl_rotate2.c
         
     | 
| 
       46 
     | 
    
         
            -
            ext/pikl/pikl_rotate2.h
         
     | 
| 
       47 
42 
     | 
    
         
             
            ext/pikl/pikl_scrap.c
         
     | 
| 
       48 
43 
     | 
    
         
             
            ext/pikl/pikl_scrap.h
         
     | 
| 
       49 
     | 
    
         
            -
            ext/pikl/ 
     | 
| 
       50 
     | 
    
         
            -
            ext/pikl/ 
     | 
| 
      
 44 
     | 
    
         
            +
            ext/pikl/pikl_special.c
         
     | 
| 
      
 45 
     | 
    
         
            +
            ext/pikl/pikl_special.h
         
     | 
| 
      
 46 
     | 
    
         
            +
            ext/pikl/pikl_voronoi.c
         
     | 
| 
      
 47 
     | 
    
         
            +
            ext/pikl/pikl_voronoi.h
         
     | 
| 
       51 
48 
     | 
    
         
             
            lib/pikl.rb
         
     | 
| 
      
 49 
     | 
    
         
            +
            lib/pikl/color.rb
         
     | 
| 
       52 
50 
     | 
    
         
             
            lib/pikl/const.rb
         
     | 
| 
       53 
51 
     | 
    
         
             
            lib/pikl/errors.rb
         
     | 
| 
       54 
52 
     | 
    
         
             
            lib/pikl/ext.rb
         
     | 
| 
      
 53 
     | 
    
         
            +
            lib/pikl/filter.rb
         
     | 
| 
       55 
54 
     | 
    
         
             
            lib/pikl/image.rb
         
     | 
| 
       56 
55 
     | 
    
         
             
            lib/pikl/pikl.dll
         
     | 
| 
       57 
56 
     | 
    
         
             
            lib/pikl/version.rb
         
     | 
| 
         @@ -59,3 +58,4 @@ setup.rb 
     | 
|
| 
       59 
58 
     | 
    
         
             
            test/sample.jpg
         
     | 
| 
       60 
59 
     | 
    
         
             
            test/test_helper.rb
         
     | 
| 
       61 
60 
     | 
    
         
             
            test/test_pikl_image.rb
         
     | 
| 
      
 61 
     | 
    
         
            +
            test/test_pikl_image2.rb
         
     | 
    
        data/README.txt
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        data/config/hoe.rb
    CHANGED
    
    | 
         @@ -44,13 +44,16 @@ class Hoe 
     | 
|
| 
       44 
44 
     | 
    
         
             
              end 
         
     | 
| 
       45 
45 
     | 
    
         | 
| 
       46 
46 
     | 
    
         
             
              def spec= s
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                if  
     | 
| 
       49 
     | 
    
         
            -
                   
     | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
       51 
     | 
    
         
            -
                   
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                if s != nil
         
     | 
| 
      
 49 
     | 
    
         
            +
                  if PACKAGE_PLATFORM =~ /mswin32/
         
     | 
| 
      
 50 
     | 
    
         
            +
                    s.files = s.files.reject! {|f| f =~ /extconf\.rb/ }
         
     | 
| 
      
 51 
     | 
    
         
            +
                  else
         
     | 
| 
      
 52 
     | 
    
         
            +
                    s.files = s.files.reject! {|f| f =~ /pikl\.dll/ }
         
     | 
| 
      
 53 
     | 
    
         
            +
                  end
         
     | 
| 
      
 54 
     | 
    
         
            +
                  @spec = s
         
     | 
| 
       52 
55 
     | 
    
         
             
                end
         
     | 
| 
       53 
     | 
    
         
            -
                 
     | 
| 
      
 56 
     | 
    
         
            +
                
         
     | 
| 
       54 
57 
     | 
    
         
             
              end
         
     | 
| 
       55 
58 
     | 
    
         
             
            end
         
     | 
| 
       56 
59 
     | 
    
         | 
    
        data/config/requirements.rb
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        data/ext/pikl/extconf.rb
    CHANGED
    
    | 
         
            File without changes
         
     | 
    
        data/ext/pikl/pikl.h
    CHANGED
    
    | 
         @@ -1,10 +1,20 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
             ImageLibrary 'pikl'
         
     | 
| 
       3 
     | 
    
         
            -
               author: soe(soezimaster@gmail.com)
         
     | 
| 
       4 
     | 
    
         
            -
               date: 2008.4
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            //=============================================================================
         
     | 
| 
      
 2 
     | 
    
         
            +
            // ImageLibrary 'pikl'
         
     | 
| 
      
 3 
     | 
    
         
            +
            //   author: soe(soezimaster@gmail.com)
         
     | 
| 
      
 4 
     | 
    
         
            +
            //   date: 2008.4
         
     | 
| 
      
 5 
     | 
    
         
            +
            //   update: 2008.11
         
     | 
| 
      
 6 
     | 
    
         
            +
            //   thanks.
         
     | 
| 
      
 7 
     | 
    
         
            +
            //		MemoNyanDum(http://junki.lix.jp/)
         
     | 
| 
      
 8 
     | 
    
         
            +
            //		C言語で実装する画像処理アルゴリズムのすべて-画像処理プログラミング
         
     | 
| 
      
 9 
     | 
    
         
            +
            //		Sharaku Image Manipulation Program(http://www21.atwiki.jp/submarine/)
         
     | 
| 
      
 10 
     | 
    
         
            +
            //		http://www.geocities.com/SiliconValley/Program/8979/color/index.htm
         
     | 
| 
      
 11 
     | 
    
         
            +
            //		http://www.teu.ac.jp/clab/kondo/research/jimmy
         
     | 
| 
      
 12 
     | 
    
         
            +
            //		http://www.sm.rim.or.jp/~shishido
         
     | 
| 
      
 13 
     | 
    
         
            +
            //		adobe gil
         
     | 
| 
      
 14 
     | 
    
         
            +
            //		Ryota Maruko
         
     | 
| 
      
 15 
     | 
    
         
            +
            //=============================================================================
         
     | 
| 
      
 16 
     | 
    
         
            +
            #ifndef _PIKL_
         
     | 
| 
      
 17 
     | 
    
         
            +
            #define _PIKL_
         
     | 
| 
       8 
18 
     | 
    
         | 
| 
       9 
19 
     | 
    
         
             
            #ifdef WIN32
         
     | 
| 
       10 
20 
     | 
    
         
             
            	#define PKLExport __declspec(dllexport)
         
     | 
| 
         @@ -17,25 +27,26 @@ 
     | 
|
| 
       17 
27 
     | 
    
         
             
            extern "C" {
         
     | 
| 
       18 
28 
     | 
    
         
             
            #endif
         
     | 
| 
       19 
29 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            # 
     | 
| 
      
 30 
     | 
    
         
            +
            #include <stdio.h>
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            #define PKL_VERSION "libpikl 3.0.8"
         
     | 
| 
       21 
33 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
            //  
     | 
| 
      
 34 
     | 
    
         
            +
            // PKL object
         
     | 
| 
       23 
35 
     | 
    
         
             
            typedef struct _PKLImage * PKLImage;
         
     | 
| 
      
 36 
     | 
    
         
            +
            typedef struct _PKLColor * PKLColor;
         
     | 
| 
       24 
37 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
      
 38 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       26 
39 
     | 
    
         
             
            // support format & color
         
     | 
| 
       27 
40 
     | 
    
         
             
            //	JPEG:
         
     | 
| 
       28 
41 
     | 
    
         
             
            //		gray/rgb/cmyk
         
     | 
| 
       29 
42 
     | 
    
         
             
            //		* color-typeのYCbCrおよびYCCには読み取りも保存も対応していない
         
     | 
| 
       30 
     | 
    
         
            -
            //
         
     | 
| 
       31 
43 
     | 
    
         
             
            //	PNG:
         
     | 
| 
       32 
44 
     | 
    
         
             
            //		gray/gray-alpha/rgb/rgb-alpha/palette
         
     | 
| 
       33 
45 
     | 
    
         
             
            //		* alphaは読取は可能だが、保存はできない
         
     | 
| 
       34 
46 
     | 
    
         
             
            //		* paletteはRGBとして扱われる
         
     | 
| 
       35 
     | 
    
         
            -
            //
         
     | 
| 
       36 
47 
     | 
    
         
             
            //	BMP(windows bitmap):
         
     | 
| 
       37 
     | 
    
         
            -
            //		24bit  
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
      
 48 
     | 
    
         
            +
            //		24bit and non-compress only
         
     | 
| 
      
 49 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       39 
50 
     | 
    
         
             
            typedef enum {
         
     | 
| 
       40 
51 
     | 
    
         
             
            	PKL_FORMAT_ERROR,	// error
         
     | 
| 
       41 
52 
     | 
    
         
             
            	PKL_FORMAT_JPEG,	// jpeg
         
     | 
| 
         @@ -54,396 +65,341 @@ typedef enum { 
     | 
|
| 
       54 
65 
     | 
    
         
             
            	PKL_YCCK			// non support
         
     | 
| 
       55 
66 
     | 
    
         
             
            } PKL_COLOR_SPACE;
         
     | 
| 
       56 
67 
     | 
    
         | 
| 
       57 
     | 
    
         
            -
             
     | 
| 
       58 
     | 
    
         
            -
            // 回転角度(右回り)
         
     | 
| 
       59 
     | 
    
         
            -
            //	* pkl_rotateで使用
         
     | 
| 
       60 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       61 
     | 
    
         
            -
            typedef enum {
         
     | 
| 
       62 
     | 
    
         
            -
            	PKL_ANGLE_000,
         
     | 
| 
       63 
     | 
    
         
            -
            	PKL_ANGLE_090,
         
     | 
| 
       64 
     | 
    
         
            -
            	PKL_ANGLE_180,
         
     | 
| 
       65 
     | 
    
         
            -
            	PKL_ANGLE_270
         
     | 
| 
       66 
     | 
    
         
            -
            } PKL_ANGLE;
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
      
 68 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       69 
69 
     | 
    
         
             
            // サンプリングパターン
         
     | 
| 
       70 
70 
     | 
    
         
             
            //	* 全てのサンプリングパターンで拡大縮小対応
         
     | 
| 
       71 
     | 
    
         
            -
            //	* 但し、 
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
      
 71 
     | 
    
         
            +
            //	* 但し、pixel-averageで拡大をする場合は、lanczosと品質は同じ
         
     | 
| 
      
 72 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       73 
73 
     | 
    
         
             
            typedef enum {
         
     | 
| 
       74 
74 
     | 
    
         
             
            	PKL_SAMPLE_ERROR,
         
     | 
| 
       75 
75 
     | 
    
         
             
            	PKL_SAMPLE_NN,	// nearest neighbor
         
     | 
| 
       76 
76 
     | 
    
         
             
            	PKL_SAMPLE_BL,	// bilinear
         
     | 
| 
       77 
77 
     | 
    
         
             
            	PKL_SAMPLE_BC,	// bicubic
         
     | 
| 
       78 
     | 
    
         
            -
            	PKL_SAMPLE_PA,	//  
     | 
| 
      
 78 
     | 
    
         
            +
            	PKL_SAMPLE_PA,	// pixel-average
         
     | 
| 
       79 
79 
     | 
    
         
             
            	PKL_SAMPLE_LZ	// lanczos
         
     | 
| 
       80 
80 
     | 
    
         
             
            } PKL_SAMPLE;
         
     | 
| 
       81 
81 
     | 
    
         | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
            //  
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
            	 
     | 
| 
       87 
     | 
    
         
            -
            	 
     | 
| 
       88 
     | 
    
         
            -
            	 
     | 
| 
       89 
     | 
    
         
            -
            	 
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
      
 82 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 83 
     | 
    
         
            +
            // 表色系定義
         
     | 
| 
      
 84 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 85 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 86 
     | 
    
         
            +
            	PKL_GRAY,
         
     | 
| 
      
 87 
     | 
    
         
            +
            	PKL_RED,
         
     | 
| 
      
 88 
     | 
    
         
            +
            	PKL_GREEN,
         
     | 
| 
      
 89 
     | 
    
         
            +
            	PKL_BLUE,
         
     | 
| 
      
 90 
     | 
    
         
            +
            	PKL_CYAN,
         
     | 
| 
      
 91 
     | 
    
         
            +
            	PKL_MAGENTA,
         
     | 
| 
      
 92 
     | 
    
         
            +
            	PKL_YELLOW,
         
     | 
| 
      
 93 
     | 
    
         
            +
            	PKL_BLACK
         
     | 
| 
      
 94 
     | 
    
         
            +
            } PKL_COLOR_MODEL;
         
     | 
| 
      
 95 
     | 
    
         
            +
             
     | 
| 
      
 96 
     | 
    
         
            +
            /** macros **/
         
     | 
| 
      
 97 
     | 
    
         
            +
            //#define pkl_color(a,b,c,d) ((a<<24)+(b<<16)+(c<<8)+d)
         
     | 
| 
      
 98 
     | 
    
         
            +
             
     | 
| 
      
 99 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 100 
     | 
    
         
            +
            /** utility                                                 **/
         
     | 
| 
      
 101 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 102 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 103 
     | 
    
         
            +
            // 表色系に応じたカラーオブジェクトを作る
         
     | 
| 
      
 104 
     | 
    
         
            +
            //	_gray,_rgb,_cmykはpkl_color_createのエイリアスです
         
     | 
| 
      
 105 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 106 
     | 
    
         
            +
            PKLExport PKLColor pkl_color_gray(unsigned char gray);
         
     | 
| 
      
 107 
     | 
    
         
            +
            PKLExport PKLColor pkl_color_rgb(unsigned char red, unsigned char green, unsigned char blue);
         
     | 
| 
      
 108 
     | 
    
         
            +
            PKLExport PKLColor pkl_color_cmyk(unsigned char c, unsigned char m, unsigned char y, unsigned char k);
         
     | 
| 
      
 109 
     | 
    
         
            +
            PKLExport PKLColor pkl_color_create(unsigned char a, unsigned char b, unsigned char c, unsigned char d);
         
     | 
| 
      
 110 
     | 
    
         
            +
             
     | 
| 
      
 111 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 112 
     | 
    
         
            +
            // ターゲットピクセルの表色系に応じた色情報を取得・設定する
         
     | 
| 
      
 113 
     | 
    
         
            +
            //	指定したPKL_COLOR_MODELとイメージのカラースペースが一致しない場合は実行されません
         
     | 
| 
      
 114 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 115 
     | 
    
         
            +
            PKLExport unsigned char pkl_get_color(PKLImage pkl, int x, int y, PKL_COLOR_MODEL target);
         
     | 
| 
      
 116 
     | 
    
         
            +
            PKLExport int pkl_set_color(PKLImage pkl, int x, int y, PKL_COLOR_MODEL target, unsigned char color);
         
     | 
| 
      
 117 
     | 
    
         
            +
             
     | 
| 
      
 118 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 119 
     | 
    
         
            +
            // ターゲットピクセルの色情報を取得・設定する
         
     | 
| 
      
 120 
     | 
    
         
            +
            //	指定したPKL_COLOR_MODELとイメージのカラースペースが一致しない場合は実行されません
         
     | 
| 
      
 121 
     | 
    
         
            +
            //	* pkl_pixel_getによって取得したPKLColorはpkl_color_closeしてください
         
     | 
| 
      
 122 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 123 
     | 
    
         
            +
            PKLExport PKLColor pkl_get_pixel(PKLImage pkl, int x, int y);
         
     | 
| 
      
 124 
     | 
    
         
            +
            PKLExport int pkl_set_pixel(PKLImage pkl, int x, int y, PKLColor color);
         
     | 
| 
      
 125 
     | 
    
         
            +
             
     | 
| 
      
 126 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 127 
     | 
    
         
            +
            // PKLColorから各色情報を取り出します
         
     | 
| 
      
 128 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 129 
     | 
    
         
            +
            PKLExport unsigned char pkl_color(PKLColor color, PKL_COLOR_MODEL target);
         
     | 
| 
      
 130 
     | 
    
         
            +
             
     | 
| 
      
 131 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 132 
     | 
    
         
            +
            // PKLColorオブジェクトの破棄
         
     | 
| 
      
 133 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 134 
     | 
    
         
            +
            PKLExport void pkl_color_close(PKLColor color);
         
     | 
| 
      
 135 
     | 
    
         
            +
             
     | 
| 
      
 136 
     | 
    
         
            +
             
     | 
| 
      
 137 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 138 
     | 
    
         
            +
            /** basic-method                                            **/
         
     | 
| 
      
 139 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 140 
     | 
    
         
            +
            // PKLImageを構築
         
     | 
| 
       91 
141 
     | 
    
         
             
            PKLExport PKLImage pkl_open(const char *in);
         
     | 
| 
       92 
142 
     | 
    
         | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       96 
     | 
    
         
            -
            	@return PKL_FORMAT参照
         
     | 
| 
       97 
     | 
    
         
            -
            */
         
     | 
| 
       98 
     | 
    
         
            -
            PKLExport PKL_FORMAT pkl_format(PKLImage pkl);
         
     | 
| 
      
 143 
     | 
    
         
            +
            //open済みファイルディスクリプタを指定
         
     | 
| 
      
 144 
     | 
    
         
            +
            PKLExport PKLImage pkl_fdopen(FILE *in);
         
     | 
| 
       99 
145 
     | 
    
         | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
             
     | 
| 
       102 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       103 
     | 
    
         
            -
            	@return 画像の幅(ピクセル数)
         
     | 
| 
       104 
     | 
    
         
            -
            */
         
     | 
| 
       105 
     | 
    
         
            -
            PKLExport int pkl_width(PKLImage pkl);
         
     | 
| 
      
 146 
     | 
    
         
            +
            // 保存
         
     | 
| 
      
 147 
     | 
    
         
            +
            PKLExport int pkl_save(PKLImage pkl, const char *out, PKL_FORMAT format);
         
     | 
| 
       106 
148 
     | 
    
         | 
| 
       107 
     | 
    
         
            -
             
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       110 
     | 
    
         
            -
            	@return 画像の高さ(ピクセル数)
         
     | 
| 
       111 
     | 
    
         
            -
            */
         
     | 
| 
       112 
     | 
    
         
            -
            PKLExport int pkl_height(PKLImage pkl);
         
     | 
| 
      
 149 
     | 
    
         
            +
            //open済みファイルディスクリプタを指定
         
     | 
| 
      
 150 
     | 
    
         
            +
            PKLExport int pkl_output(PKLImage pkl, FILE *out, PKL_FORMAT format);
         
     | 
| 
       113 
151 
     | 
    
         | 
| 
      
 152 
     | 
    
         
            +
            // PKLImageオブジェクトの破棄
         
     | 
| 
      
 153 
     | 
    
         
            +
            PKLExport void pkl_close(PKLImage pkl);
         
     | 
| 
       114 
154 
     | 
    
         | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       118 
     | 
    
         
            -
            	@param level [in]
         
     | 
| 
       119 
     | 
    
         
            -
            		0(無圧縮) .. 10(最高圧縮)。
         
     | 
| 
       120 
     | 
    
         
            -
            		指定がない場合は、デフォルトレベルが設定されます。
         
     | 
| 
       121 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       122 
     | 
    
         
            -
            */
         
     | 
| 
       123 
     | 
    
         
            -
            PKLExport int pkl_compress(PKLImage pkl, int level);
         
     | 
| 
      
 155 
     | 
    
         
            +
            // 画像フォーマット
         
     | 
| 
      
 156 
     | 
    
         
            +
            PKLExport PKL_FORMAT pkl_format(PKLImage pkl);
         
     | 
| 
       124 
157 
     | 
    
         | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
             
     | 
| 
       128 
     | 
    
         
            -
            /*
         
     | 
| 
       129 
     | 
    
         
            -
            	保存<br>
         
     | 
| 
       130 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       131 
     | 
    
         
            -
            	@param out [in] 保存ファイル名
         
     | 
| 
       132 
     | 
    
         
            -
            	@param format [in] 保存フォーマット(PKL_FORMAT参照)
         
     | 
| 
       133 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       134 
     | 
    
         
            -
            */
         
     | 
| 
       135 
     | 
    
         
            -
            PKLExport int pkl_save(PKLImage pkl, const char *out, PKL_FORMAT format);
         
     | 
| 
      
 158 
     | 
    
         
            +
            // 画像の幅・高さ
         
     | 
| 
      
 159 
     | 
    
         
            +
            PKLExport int pkl_width(PKLImage pkl);
         
     | 
| 
      
 160 
     | 
    
         
            +
            PKLExport int pkl_height(PKLImage pkl);
         
     | 
| 
       136 
161 
     | 
    
         | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
            //  
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
            /*!
         
     | 
| 
       141 
     | 
    
         
            -
            	PKLImageオブジェクトの破棄<br>
         
     | 
| 
       142 
     | 
    
         
            -
            	確保していたメモリを全て解放します。用がなくなったら実行するようにしてください。
         
     | 
| 
       143 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       144 
     | 
    
         
            -
            */
         
     | 
| 
       145 
     | 
    
         
            -
            PKLExport void pkl_close(PKLImage pkl);
         
     | 
| 
      
 162 
     | 
    
         
            +
            // 色数を数える
         
     | 
| 
      
 163 
     | 
    
         
            +
            //	* 色数(CMYKの場合はCMYのみカウント)
         
     | 
| 
      
 164 
     | 
    
         
            +
            PKLExport int pkl_count(PKLImage pkl);
         
     | 
| 
       146 
165 
     | 
    
         | 
| 
      
 166 
     | 
    
         
            +
            // カラースペースを返す
         
     | 
| 
      
 167 
     | 
    
         
            +
            PKLExport PKL_COLOR_SPACE pkl_colorspace(PKLImage pkl);
         
     | 
| 
       147 
168 
     | 
    
         | 
| 
       148 
     | 
    
         
            -
             
     | 
| 
       149 
     | 
    
         
            -
            	 
     | 
| 
       150 
     | 
    
         
            -
             
     | 
| 
       151 
     | 
    
         
            -
             
     | 
| 
       152 
     | 
    
         
            -
            	・左上原点はsx=0, sy=0になります。<br>
         
     | 
| 
       153 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       154 
     | 
    
         
            -
            	@param sx [in] 切り出し位置(x)
         
     | 
| 
       155 
     | 
    
         
            -
            	@param sy [in] 切り出し位置(y)
         
     | 
| 
       156 
     | 
    
         
            -
            	@param width [in] sxからの切り出す幅(ピクセル数)
         
     | 
| 
       157 
     | 
    
         
            -
            	@param height [in] syからの切り出す高さ(ピクセル数)
         
     | 
| 
       158 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       159 
     | 
    
         
            -
            */
         
     | 
| 
       160 
     | 
    
         
            -
            PKLExport int pkl_trim(PKLImage pkl, int sx, int sy, int width, int height);
         
     | 
| 
      
 169 
     | 
    
         
            +
            // PNG/JPEG保存時の圧縮率を指示する
         
     | 
| 
      
 170 
     | 
    
         
            +
            //	level: 0(無圧縮) .. 10(最高圧縮)。
         
     | 
| 
      
 171 
     | 
    
         
            +
            //		指定がない場合は、デフォルトレベルが設定される
         
     | 
| 
      
 172 
     | 
    
         
            +
            PKLExport int pkl_compress(PKLImage pkl, int level);
         
     | 
| 
       161 
173 
     | 
    
         | 
| 
       162 
     | 
    
         
            -
             
     | 
| 
       163 
     | 
    
         
            -
            	 
     | 
| 
       164 
     | 
    
         
            -
             
     | 
| 
       165 
     | 
    
         
            -
            	@param angle [in] 回転角度(PKL_ANGLE参照)
         
     | 
| 
       166 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       167 
     | 
    
         
            -
            */
         
     | 
| 
       168 
     | 
    
         
            -
            PKLExport int pkl_rotate(PKLImage pkl, PKL_ANGLE angle);
         
     | 
| 
      
 174 
     | 
    
         
            +
            // 新規のキャンバスを作る
         
     | 
| 
      
 175 
     | 
    
         
            +
            //	backcolor: NULLの時は白
         
     | 
| 
      
 176 
     | 
    
         
            +
            PKLExport PKLImage pkl_canvas(int width, int height, PKL_COLOR_SPACE color, PKLColor backcolor);
         
     | 
| 
       169 
177 
     | 
    
         | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
       171 
     | 
    
         
            -
             
     | 
| 
       172 
     | 
    
         
            -
            PKLExport int pkl_rotate2(PKLImage pkl, float angle, PKL_SAMPLE sample,
         
     | 
| 
       173 
     | 
    
         
            -
            								unsigned char a, unsigned char b, unsigned char c, unsigned char d);
         
     | 
| 
       174 
     | 
    
         
            -
             
     | 
| 
       175 
     | 
    
         
            -
            /*!
         
     | 
| 
       176 
     | 
    
         
            -
            	拡大・縮小します。<br>
         
     | 
| 
       177 
     | 
    
         
            -
            	@param pkl [in] PKLImageオブジェクト
         
     | 
| 
       178 
     | 
    
         
            -
            	@param width [in] 横方向の変形後サイズ(ピクセル数)
         
     | 
| 
       179 
     | 
    
         
            -
            	@param height [in] 縦方向の変形後サイズ(ピクセル数)
         
     | 
| 
       180 
     | 
    
         
            -
            	@param sample [in] サンプリングパターン(PKL_SAMPLE参照)
         
     | 
| 
       181 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       182 
     | 
    
         
            -
            */
         
     | 
| 
       183 
     | 
    
         
            -
            PKLExport int pkl_resize(PKLImage pkl, int width, int height, PKL_SAMPLE sample);
         
     | 
| 
      
 178 
     | 
    
         
            +
            // PKLImageの複製
         
     | 
| 
      
 179 
     | 
    
         
            +
            PKLExport PKLImage pkl_dup(PKLImage pkl);
         
     | 
| 
       184 
180 
     | 
    
         | 
| 
       185 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       186 
     | 
    
         
            -
            // affine変換
         
     | 
| 
       187 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       188 
     | 
    
         
            -
            //*_scale = 変形率の逆数
         
     | 
| 
       189 
     | 
    
         
            -
            PKLExport void pkl_matrix_scale(PKLImage pkl, double x_scale, double y_scale);
         
     | 
| 
       190 
181 
     | 
    
         | 
| 
       191 
     | 
    
         
            -
            //angle=左回りの回転角度
         
     | 
| 
       192 
     | 
    
         
            -
            PKLExport void pkl_matrix_rotate(PKLImage pkl, double angle);
         
     | 
| 
       193 
182 
     | 
    
         | 
| 
       194 
     | 
    
         
            -
             
     | 
| 
       195 
     | 
    
         
            -
             
     | 
| 
      
 183 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 184 
     | 
    
         
            +
            /** basic-operation                                         **/
         
     | 
| 
      
 185 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 186 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 187 
     | 
    
         
            +
            // トリミング
         
     | 
| 
      
 188 
     | 
    
         
            +
            //	・パラメータは左上原点です
         
     | 
| 
      
 189 
     | 
    
         
            +
            //	・左上原点はsx=0, sy=0になります。
         
     | 
| 
      
 190 
     | 
    
         
            +
            //	sx: 切り出し位置(x)
         
     | 
| 
      
 191 
     | 
    
         
            +
            //	sy: 切り出し位置(y)
         
     | 
| 
      
 192 
     | 
    
         
            +
            //	width: sxからの切り出す幅(ピクセル数)
         
     | 
| 
      
 193 
     | 
    
         
            +
            //	height: syからの切り出す高さ(ピクセル数)
         
     | 
| 
      
 194 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 195 
     | 
    
         
            +
            PKLExport int pkl_trim(PKLImage pkl, int sx, int sy, int width, int height);
         
     | 
| 
       196 
196 
     | 
    
         | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
      
 197 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 198 
     | 
    
         
            +
            // 拡大・縮小
         
     | 
| 
      
 199 
     | 
    
         
            +
            //	width: 横方向の変形後サイズ(ピクセル数)
         
     | 
| 
      
 200 
     | 
    
         
            +
            //	height: 縦方向の変形後サイズ(ピクセル数)
         
     | 
| 
      
 201 
     | 
    
         
            +
            //	sample: サンプリングパターン(PKL_SAMPLE参照)
         
     | 
| 
      
 202 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 203 
     | 
    
         
            +
            PKLExport int pkl_resize(PKLImage pkl, int width, int height, PKL_SAMPLE sample);
         
     | 
| 
       199 
204 
     | 
    
         | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
     | 
    
         
            -
            //  
     | 
| 
       202 
     | 
    
         
            -
             
     | 
| 
       203 
     | 
    
         
            -
             
     | 
| 
       204 
     | 
    
         
            -
            	 
     | 
| 
       205 
     | 
    
         
            -
             
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
             
     | 
| 
       208 
     | 
    
         
            -
             
     | 
| 
       209 
     | 
    
         
            -
             
     | 
| 
       210 
     | 
    
         
            -
            	 
     | 
| 
       211 
     | 
    
         
            -
             
     | 
| 
       212 
     | 
    
         
            -
             
     | 
| 
       213 
     | 
    
         
            -
             
     | 
| 
       214 
     | 
    
         
            -
             
     | 
| 
       215 
     | 
    
         
            -
             
     | 
| 
       216 
     | 
    
         
            -
             
     | 
| 
       217 
     | 
    
         
            -
             
     | 
| 
       218 
     | 
    
         
            -
             
     | 
| 
       219 
     | 
    
         
            -
             
     | 
| 
       220 
     | 
    
         
            -
             
     | 
| 
      
 205 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 206 
     | 
    
         
            +
            // 回転
         
     | 
| 
      
 207 
     | 
    
         
            +
            //	angle: 右回転角度
         
     | 
| 
      
 208 
     | 
    
         
            +
            //	sample: サンプリングパターン(PKL_SAMPLE参照)
         
     | 
| 
      
 209 
     | 
    
         
            +
            //	angle: 背景色(NULLの時は白)
         
     | 
| 
      
 210 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 211 
     | 
    
         
            +
            PKLExport int pkl_rotate(PKLImage pkl, float angle, PKL_SAMPLE sample, PKLColor backcolor);
         
     | 
| 
      
 212 
     | 
    
         
            +
             
     | 
| 
      
 213 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 214 
     | 
    
         
            +
            // affine変換(from adobe gil)
         
     | 
| 
      
 215 
     | 
    
         
            +
            //	width, height: affine変換後のサイズ
         
     | 
| 
      
 216 
     | 
    
         
            +
            //	backcolor: 背景色(NULLの時は白)
         
     | 
| 
      
 217 
     | 
    
         
            +
            //	*_scale: 変形率の逆数
         
     | 
| 
      
 218 
     | 
    
         
            +
            //	angle  : 左回りの回転角度
         
     | 
| 
      
 219 
     | 
    
         
            +
            //	x, y: 移動方向。正数は上、左方向への移動
         
     | 
| 
      
 220 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 221 
     | 
    
         
            +
            PKLExport int pkl_affine(PKLImage pkl, PKL_SAMPLE sampler, int width, int height, PKLColor backcolor,
         
     | 
| 
      
 222 
     | 
    
         
            +
                                                           double x_scale, double y_scale, double angle, int x, int y);
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
             
     | 
| 
      
 225 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 226 
     | 
    
         
            +
            /** enhance(一般的なフィルタ)                               **/
         
     | 
| 
      
 227 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 228 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 229 
     | 
    
         
            +
            // アンシャープマスク
         
     | 
| 
      
 230 
     | 
    
         
            +
            //	threshold:
         
     | 
| 
      
 231 
     | 
    
         
            +
            //		適応量(0-255)
         
     | 
| 
      
 232 
     | 
    
         
            +
            //		0の時:変化しません。
         
     | 
| 
      
 233 
     | 
    
         
            +
            //		255の時:全ての色にアンシャープ処理が働きます
         
     | 
| 
      
 234 
     | 
    
         
            +
            //	edge:
         
     | 
| 
      
 235 
     | 
    
         
            +
            //		エッジ。想定結果が得られる範囲は-10 .. 10程度です。
         
     | 
| 
      
 236 
     | 
    
         
            +
            //		edge=0の時:変化しません。
         
     | 
| 
      
 237 
     | 
    
         
            +
            //		edge>0の時:値が大きいほど先鋭化されます。
         
     | 
| 
      
 238 
     | 
    
         
            +
            //		edge<0の時:値が小さいほどぼやけます。
         
     | 
| 
      
 239 
     | 
    
         
            +
            //		
         
     | 
| 
      
 240 
     | 
    
         
            +
            //		想定結果が得られる範囲は-10 .. 10程度です。
         
     | 
| 
      
 241 
     | 
    
         
            +
            //		これを超える場合は、品質の保証はありません。
         
     | 
| 
      
 242 
     | 
    
         
            +
            //		※画質によりこの通りではありません。-10..10の範囲より小さくなる可能性があります。
         
     | 
| 
      
 243 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       221 
244 
     | 
    
         
             
            PKLExport int pkl_unsharp(PKLImage pkl, int threshold, double edge);
         
     | 
| 
       222 
245 
     | 
    
         | 
| 
       223 
     | 
    
         
            -
             
     | 
| 
       224 
     | 
    
         
            -
             
     | 
| 
       225 
     | 
    
         
            -
            	 
     | 
| 
       226 
     | 
    
         
            -
             
     | 
| 
       227 
     | 
    
         
            -
            		 
     | 
| 
       228 
     | 
    
         
            -
            		0 
     | 
| 
       229 
     | 
    
         
            -
             
     | 
| 
       230 
     | 
    
         
            -
            		* rateが0未満の時は直線的に平坦化されます。
         
     | 
| 
       231 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       232 
     | 
    
         
            -
            */
         
     | 
| 
      
 246 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 247 
     | 
    
         
            +
            // コントラスト調整
         
     | 
| 
      
 248 
     | 
    
         
            +
            //	rate: 調整係数(-127 - 127)
         
     | 
| 
      
 249 
     | 
    
         
            +
            //		0の時:変化しません。
         
     | 
| 
      
 250 
     | 
    
         
            +
            //		* rateが0以上の時は周波数によるコントラスト強調がおこなわれます。
         
     | 
| 
      
 251 
     | 
    
         
            +
            //		* rateが0未満の時は直線的に平坦化されます。
         
     | 
| 
      
 252 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       233 
253 
     | 
    
         
             
            PKLExport int pkl_contrast(PKLImage pkl, int rate);
         
     | 
| 
       234 
254 
     | 
    
         | 
| 
       235 
     | 
    
         
            -
             
     | 
| 
       236 
     | 
    
         
            -
             
     | 
| 
       237 
     | 
    
         
            -
            	ヒストグラムの平坦化をおこないます。各色の分布に偏りがある画像に有効な場合があります。
         
     | 
| 
       238 
     | 
    
         
            -
            	 
     | 
| 
       239 
     | 
    
         
            -
            	 
     | 
| 
       240 
     | 
    
         
            -
             
     | 
| 
       241 
     | 
    
         
            -
             
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
       243 
     | 
    
         
            -
            	@param coeff [in]
         
     | 
| 
       244 
     | 
    
         
            -
            		平坦化時の係数。
         
     | 
| 
       245 
     | 
    
         
            -
            		1が標準です。1より小さい場合は暗く、1より大きい場合は明るくなります(0.0..2.0)
         
     | 
| 
       246 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       247 
     | 
    
         
            -
            */
         
     | 
| 
      
 255 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 256 
     | 
    
         
            +
            // レベル補正
         
     | 
| 
      
 257 
     | 
    
         
            +
            //	ヒストグラムの平坦化をおこないます。各色の分布に偏りがある画像に有効な場合があります。
         
     | 
| 
      
 258 
     | 
    
         
            +
            //	low: 全ピクセル数に対して、切り捨てる暗い色の総数の割合(0-100%)
         
     | 
| 
      
 259 
     | 
    
         
            +
            //	high: 全ピクセル数に対して、切り捨てる明るい色の総数の割合(0-100%)
         
     | 
| 
      
 260 
     | 
    
         
            +
            //	coeff: 平坦化時の係数。
         
     | 
| 
      
 261 
     | 
    
         
            +
            //		1が標準です。1より小さい場合は暗く、1より大きい場合は明るくなります(0.0..2.0)
         
     | 
| 
      
 262 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       248 
263 
     | 
    
         
             
            PKLExport int pkl_level(PKLImage pkl, double low, double high, double coeff);
         
     | 
| 
       249 
264 
     | 
    
         | 
| 
       250 
     | 
    
         
            -
             
     | 
| 
       251 
     | 
    
         
            -
             
     | 
| 
       252 
     | 
    
         
            -
            	各色にcolor値を加算する単純な処理です。
         
     | 
| 
       253 
     | 
    
         
            -
            	 
     | 
| 
       254 
     | 
    
         
            -
             
     | 
| 
       255 
     | 
    
         
            -
            		 
     | 
| 
       256 
     | 
    
         
            -
            		255 
     | 
| 
       257 
     | 
    
         
            -
             
     | 
| 
       258 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       259 
     | 
    
         
            -
            */
         
     | 
| 
      
 265 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 266 
     | 
    
         
            +
            // 明るさ調整
         
     | 
| 
      
 267 
     | 
    
         
            +
            //	各色にcolor値を加算する単純な処理です。
         
     | 
| 
      
 268 
     | 
    
         
            +
            //	color:
         
     | 
| 
      
 269 
     | 
    
         
            +
            //		各色に加算する色。
         
     | 
| 
      
 270 
     | 
    
         
            +
            //		255を指定すれば、ただの白い画像になります。
         
     | 
| 
      
 271 
     | 
    
         
            +
            //		-255を指定すると、ただの黒い画像になります。
         
     | 
| 
      
 272 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       260 
273 
     | 
    
         
             
            PKLExport int pkl_brightness(PKLImage pkl, int color);
         
     | 
| 
       261 
274 
     | 
    
         | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
             
     | 
| 
       264 
     | 
    
         
            -
            	 
     | 
| 
       265 
     | 
    
         
            -
            	 
     | 
| 
       266 
     | 
    
         
            -
             
     | 
| 
       267 
     | 
    
         
            -
            		 
     | 
| 
       268 
     | 
    
         
            -
             
     | 
| 
       269 
     | 
    
         
            -
            	@param sm [in]
         
     | 
| 
       270 
     | 
    
         
            -
            		彩度(-1..1)。
         
     | 
| 
       271 
     | 
    
         
            -
            		+0.1で10%up。
         
     | 
| 
       272 
     | 
    
         
            -
            		0.0は変化なし
         
     | 
| 
       273 
     | 
    
         
            -
            	@param hd [in]
         
     | 
| 
       274 
     | 
    
         
            -
            		色相(360度回転)。
         
     | 
| 
       275 
     | 
    
         
            -
            		360度の倍数では変化しません。
         
     | 
| 
       276 
     | 
    
         
            -
            		参考:R=113.2/Ye=173.0/G=225.0/Cy=293.2/B=353.0/Mg=45.0
         
     | 
| 
       277 
     | 
    
         
            -
            	@return 成功した場合は0。失敗した場合は真を返します。
         
     | 
| 
       278 
     | 
    
         
            -
            */
         
     | 
| 
      
 275 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 276 
     | 
    
         
            +
            // 輝度(明るさ)・彩度(鮮やかさ)・色相(色合い)調整
         
     | 
| 
      
 277 
     | 
    
         
            +
            //	ym: 輝度(-1..1)。+0.1で10%up。0.0は変化なし
         
     | 
| 
      
 278 
     | 
    
         
            +
            //	sm: 彩度(-1..1)。+0.1で10%up。0.0は変化なし
         
     | 
| 
      
 279 
     | 
    
         
            +
            //	hd: 色相(360度回転)。360度の倍数では変化しません。
         
     | 
| 
      
 280 
     | 
    
         
            +
            //		参考:R=113.2/Ye=173.0/G=225.0/Cy=293.2/B=353.0/Mg=45.0
         
     | 
| 
      
 281 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       279 
282 
     | 
    
         
             
            PKLExport int pkl_hls(PKLImage pkl, double ym, double sm, double hd);
         
     | 
| 
       280 
283 
     | 
    
         | 
| 
       281 
     | 
    
         
            -
             
     | 
| 
       282 
     | 
    
         
            -
            // 
     | 
| 
       283 
     | 
    
         
            -
            // 
     | 
| 
       284 
     | 
    
         
            -
            // 
     | 
| 
       285 
     | 
    
         
            -
            // 
     | 
| 
      
 284 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 285 
     | 
    
         
            +
            // ガンマ補正
         
     | 
| 
      
 286 
     | 
    
         
            +
            //	gm: 補正係数(>=0.0)
         
     | 
| 
      
 287 
     | 
    
         
            +
            //		gm<1.0:暗く調整される
         
     | 
| 
      
 288 
     | 
    
         
            +
            //		gm=1.0:変化しない
         
     | 
| 
      
 289 
     | 
    
         
            +
            //		gm>1.0:明るく調整される
         
     | 
| 
      
 290 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       286 
291 
     | 
    
         
             
            PKLExport int pkl_gamma(PKLImage pkl, double gm);
         
     | 
| 
       287 
292 
     | 
    
         | 
| 
       288 
     | 
    
         
            -
             
     | 
| 
      
 293 
     | 
    
         
            +
            // ノイズ除去(median filter)
         
     | 
| 
       289 
294 
     | 
    
         
             
            PKLExport int pkl_noisecut(PKLImage pkl);
         
     | 
| 
       290 
295 
     | 
    
         | 
| 
       291 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       292 
     | 
    
         
            -
            // エフェクト2
         
     | 
| 
       293 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       294 
     | 
    
         
            -
            /* 反転 */
         
     | 
| 
       295 
     | 
    
         
            -
            PKLExport int pkl_invert(PKLImage pkl);
         
     | 
| 
       296 
     | 
    
         
            -
             
     | 
| 
       297 
     | 
    
         
            -
            //エッジ(輪郭)を強調する
         
     | 
| 
       298 
     | 
    
         
            -
            //unsharpは画像全体をシャープにするが、これはエッジ部分のみの強調
         
     | 
| 
       299 
     | 
    
         
            -
            typedef enum {
         
     | 
| 
       300 
     | 
    
         
            -
            	PKL_FOCUS_DETAIL,	//弱い
         
     | 
| 
       301 
     | 
    
         
            -
            	PKL_FOCUS_FOCUS,	//中間
         
     | 
| 
       302 
     | 
    
         
            -
            	PKL_FOCUS_EDGES	//強い
         
     | 
| 
       303 
     | 
    
         
            -
            } PKL_FOCUS;
         
     | 
| 
       304 
     | 
    
         
            -
            PKLExport int pkl_focus(PKLImage pkl, PKL_FOCUS type);
         
     | 
| 
       305 
     | 
    
         
            -
             
     | 
| 
       306 
     | 
    
         
            -
            //エンボス
         
     | 
| 
       307 
     | 
    
         
            -
            typedef enum {
         
     | 
| 
       308 
     | 
    
         
            -
            	PKL_EMBOSS_EMBOSS,		//エンボス1
         
     | 
| 
       309 
     | 
    
         
            -
            	PKL_EMBOSS_HEAVY,		//エンボス2
         
     | 
| 
       310 
     | 
    
         
            -
            	PKL_EMBOSS_LIGHT,		//エンボス3
         
     | 
| 
       311 
     | 
    
         
            -
            	PKL_EMBOSS_LAPLACIAN	//輪郭抽出
         
     | 
| 
       312 
     | 
    
         
            -
            } PKL_EMBOSS;
         
     | 
| 
       313 
     | 
    
         
            -
            PKLExport int pkl_emboss(PKLImage pkl, PKL_EMBOSS type);
         
     | 
| 
       314 
     | 
    
         
            -
             
     | 
| 
       315 
296 
     | 
    
         | 
| 
       316 
     | 
    
         
            -
             
     | 
| 
       317 
     | 
    
         
            -
             
     | 
| 
       318 
     | 
    
         
            -
             
     | 
| 
       319 
     | 
    
         
            -
             
     | 
| 
       320 
     | 
    
         
            -
            // 
     | 
| 
       321 
     | 
    
         
            -
            // 
     | 
| 
       322 
     | 
    
         
            -
            // 
     | 
| 
       323 
     | 
    
         
            -
             
     | 
| 
       324 
     | 
    
         
            -
             
     | 
| 
       325 
     | 
    
         
            -
            /* 画像の合成2 */
         
     | 
| 
       326 
     | 
    
         
            -
            // pkl_composite()に加え、childイメージ上の1色を透明扱いにできる
         
     | 
| 
       327 
     | 
    
         
            -
            //		parent:		ベース(処理後はこのオブジェクトが更新される)
         
     | 
| 
       328 
     | 
    
         
            -
            //		child:		乗せる画像(このオブジェクトは処理しても不可侵)
         
     | 
| 
       329 
     | 
    
         
            -
            //		xpos,ypos:	childを乗せるparent上の座標.
         
     | 
| 
       330 
     | 
    
         
            -
            //					必ずparent上の座標でなければならない.
         
     | 
| 
       331 
     | 
    
         
            -
            //		transcolor:	透明にする色(pkl_colorマクロで生成する)
         
     | 
| 
       332 
     | 
    
         
            -
            // *parentとchildは同じカラーモードでなければエラーとなる
         
     | 
| 
       333 
     | 
    
         
            -
            PKLExport int pkl_composite2(PKLImage parent, PKLImage child, int xpos, int ypos, int transcolor);
         
     | 
| 
       334 
     | 
    
         
            -
             
     | 
| 
       335 
     | 
    
         
            -
            /* (安易な)セピア */
         
     | 
| 
       336 
     | 
    
         
            -
            //		red_weight,green_weight,blue_weight:
         
     | 
| 
       337 
     | 
    
         
            -
            //			red,green,blueそれぞれに対しての重み
         
     | 
| 
       338 
     | 
    
         
            -
            //			値が大きいほど、その色が強く出る
         
     | 
| 
       339 
     | 
    
         
            -
            // *RGBのみに対応
         
     | 
| 
       340 
     | 
    
         
            -
            // *セピアっぽくするのであれば、redの重みを1.0として、他の重みを1.0より小さくする
         
     | 
| 
       341 
     | 
    
         
            -
            PKLExport int pkl_sepia(PKLImage pkl, double red_weight, double green_weight, double blue_weight);
         
     | 
| 
       342 
     | 
    
         
            -
             
     | 
| 
       343 
     | 
    
         
            -
            /* (安易な)油絵化 */
         
     | 
| 
       344 
     | 
    
         
            -
            // 油絵のようにする
         
     | 
| 
       345 
     | 
    
         
            -
            //		weight:	筆の太さ(というか最頻色走査領域のサイズ)
         
     | 
| 
       346 
     | 
    
         
            -
            //				例えば、3を指定した場合、近傍3x3の領域の最頻色が選択される
         
     | 
| 
       347 
     | 
    
         
            -
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
       348 
     | 
    
         
            -
            PKLExport int pkl_oilpaint(PKLImage pkl, int weight);
         
     | 
| 
       349 
     | 
    
         
            -
             
     | 
| 
       350 
     | 
    
         
            -
             
     | 
| 
       351 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       352 
     | 
    
         
            -
            // Blur(ぼかし)
         
     | 
| 
       353 
     | 
    
         
            -
            //=============================================================================
         
     | 
| 
       354 
     | 
    
         
            -
            /* (安易な)ぼかし */
         
     | 
| 
       355 
     | 
    
         
            -
            //		weight:	平均算出領域のサイズ
         
     | 
| 
       356 
     | 
    
         
            -
            //				例えば、3を指定した場合、近傍3x3の領域の平均色が選択される
         
     | 
| 
       357 
     | 
    
         
            -
            //				値が大きいほど、ぼかし度は強くなる。
         
     | 
| 
      
 297 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 298 
     | 
    
         
            +
            /** blur(ぼかし)                                            **/
         
     | 
| 
      
 299 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 300 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 301 
     | 
    
         
            +
            //  (安易な)ぼかし
         
     | 
| 
      
 302 
     | 
    
         
            +
            //	weight:	平均算出領域のサイズ
         
     | 
| 
      
 303 
     | 
    
         
            +
            //			例えば、3を指定した場合、近傍3x3の領域の平均色が選択される
         
     | 
| 
      
 304 
     | 
    
         
            +
            //			値が大きいほど、ぼかし度は強くなる。
         
     | 
| 
       358 
305 
     | 
    
         
             
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 306 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       359 
307 
     | 
    
         
             
            PKLExport int pkl_blur(PKLImage pkl, int weight);
         
     | 
| 
       360 
308 
     | 
    
         | 
| 
       361 
     | 
    
         
            -
             
     | 
| 
       362 
     | 
    
         
            -
            //  
     | 
| 
      
 309 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 310 
     | 
    
         
            +
            // ガウスぼかし
         
     | 
| 
      
 311 
     | 
    
         
            +
            //	ガウス関数を使ったぼかし。「画像全体にぼかしが入る」「方向がない」
         
     | 
| 
       363 
312 
     | 
    
         
             
            //		weight:	ぼかし強調度(>0.0)
         
     | 
| 
       364 
313 
     | 
    
         
             
            //				値が大きいほど、ぼかし度は強くなる。
         
     | 
| 
       365 
314 
     | 
    
         
             
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 315 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       366 
316 
     | 
    
         
             
            PKLExport int pkl_gaussblur(PKLImage pkl, double weight);
         
     | 
| 
       367 
317 
     | 
    
         | 
| 
       368 
     | 
    
         
            -
             
     | 
| 
       369 
     | 
    
         
            -
            // 
     | 
| 
       370 
     | 
    
         
            -
            // 
     | 
| 
       371 
     | 
    
         
            -
            //		 
     | 
| 
      
 318 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 319 
     | 
    
         
            +
            // 放射状ブラー(radiation)
         
     | 
| 
      
 320 
     | 
    
         
            +
            //	x,y:	放射の中心座標(画像範囲内にない場合は中心)
         
     | 
| 
      
 321 
     | 
    
         
            +
            //	ef:		中心からの強調度(>0.0。値が大きいほど、放射度が強くなる)
         
     | 
| 
      
 322 
     | 
    
         
            +
            //	weight:	ぼかしの強調度(>0)
         
     | 
| 
       372 
323 
     | 
    
         
             
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 324 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       373 
325 
     | 
    
         
             
            PKLExport int pkl_rblur(PKLImage pkl, int x, int y, double ef, int weight);
         
     | 
| 
       374 
326 
     | 
    
         | 
| 
       375 
     | 
    
         
            -
             
     | 
| 
       376 
     | 
    
         
            -
            // 
     | 
| 
       377 
     | 
    
         
            -
            // 
     | 
| 
       378 
     | 
    
         
            -
            //		 
     | 
| 
      
 327 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 328 
     | 
    
         
            +
            // 回転ブラー(angle)
         
     | 
| 
      
 329 
     | 
    
         
            +
            //	x,y:	放射の中心座標(画像範囲内にない場合は中心)
         
     | 
| 
      
 330 
     | 
    
         
            +
            //	ef:		中心からの強調度(>0.0。値が大きいほど、放射度が強くなる)
         
     | 
| 
      
 331 
     | 
    
         
            +
            //	weight:	ぼかしの強調度(>0)
         
     | 
| 
       379 
332 
     | 
    
         
             
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 333 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       380 
334 
     | 
    
         
             
            PKLExport int pkl_ablur(PKLImage pkl, int x, int y, double ef, int weight);
         
     | 
| 
       381 
335 
     | 
    
         | 
| 
       382 
     | 
    
         
            -
             
     | 
| 
       383 
     | 
    
         
            -
            // 
     | 
| 
       384 
     | 
    
         
            -
            // 
     | 
| 
       385 
     | 
    
         
            -
            //		 
     | 
| 
       386 
     | 
    
         
            -
            // 
     | 
| 
      
 336 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 337 
     | 
    
         
            +
            // うずまきブラー(whirlpool)
         
     | 
| 
      
 338 
     | 
    
         
            +
            //	x,y:	放射の中心座標(画像範囲内にない場合は中心)
         
     | 
| 
      
 339 
     | 
    
         
            +
            //	ef:		中心からの強調度(>0.0。値が大きいほど、放射度が強くなる)
         
     | 
| 
      
 340 
     | 
    
         
            +
            //	weight:	ぼかしの強調度(>0)
         
     | 
| 
      
 341 
     | 
    
         
            +
            //	angle:	回転角度(0は回転なし)
         
     | 
| 
       387 
342 
     | 
    
         
             
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 343 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       388 
344 
     | 
    
         
             
            PKLExport int pkl_wblur(PKLImage pkl, int x, int y, double ef, int weight, double angle);
         
     | 
| 
       389 
345 
     | 
    
         | 
| 
       390 
     | 
    
         
            -
             
     | 
| 
       391 
     | 
    
         
            -
            //  
     | 
| 
      
 346 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 347 
     | 
    
         
            +
            // モーションブラー(motion)
         
     | 
| 
      
 348 
     | 
    
         
            +
            //	任意角度での直線ブラー
         
     | 
| 
       392 
349 
     | 
    
         
             
            //		angle: ぼかす角度
         
     | 
| 
       393 
350 
     | 
    
         
             
            //		range: ぼかし強調度
         
     | 
| 
       394 
351 
     | 
    
         
             
            // *weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 352 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       395 
353 
     | 
    
         
             
            PKLExport int pkl_mblur(PKLImage pkl, double angle, int weight);
         
     | 
| 
       396 
354 
     | 
    
         | 
| 
       397 
355 
     | 
    
         | 
| 
       398 
     | 
    
         
            -
             
     | 
| 
       399 
     | 
    
         
            -
             
     | 
| 
       400 
     | 
    
         
            -
             
     | 
| 
       401 
     | 
    
         
            -
             
     | 
| 
       402 
     | 
    
         
            -
            // 
     | 
| 
       403 
     | 
    
         
            -
            // 
     | 
| 
       404 
     | 
    
         
            -
             
     | 
| 
       405 
     | 
    
         
            -
             
     | 
| 
       406 
     | 
    
         
            -
             
     | 
| 
       407 
     | 
    
         
            -
            //  
     | 
| 
       408 
     | 
    
         
            -
            //  
     | 
| 
       409 
     | 
    
         
            -
             
     | 
| 
       410 
     | 
    
         
            -
             
     | 
| 
       411 
     | 
    
         
            -
             
     | 
| 
       412 
     | 
    
         
            -
             
     | 
| 
       413 
     | 
    
         
            -
            // 
     | 
| 
       414 
     | 
    
         
            -
             
     | 
| 
       415 
     | 
    
         
            -
             
     | 
| 
       416 
     | 
    
         
            -
             
     | 
| 
       417 
     | 
    
         
            -
             
     | 
| 
       418 
     | 
    
         
            -
             
     | 
| 
       419 
     | 
    
         
            -
             
     | 
| 
       420 
     | 
    
         
            -
            /* VTR調 */
         
     | 
| 
       421 
     | 
    
         
            -
            //colspace;	//行の間隔
         
     | 
| 
       422 
     | 
    
         
            -
            //gst;	//横方向のブレ
         
     | 
| 
       423 
     | 
    
         
            -
            //cst;	//行の色差分
         
     | 
| 
       424 
     | 
    
         
            -
            PKLExport int pkl_vtr(PKLImage pkl, int colspace, int gst, int cst);
         
     | 
| 
       425 
     | 
    
         
            -
             
     | 
| 
       426 
     | 
    
         
            -
            //**************************************************************************
         
     | 
| 
       427 
     | 
    
         
            -
            // エフェクト4(実験シリーズ)
         
     | 
| 
       428 
     | 
    
         
            -
            //**************************************************************************
         
     | 
| 
       429 
     | 
    
         
            -
            /* 輪郭抽出 */
         
     | 
| 
       430 
     | 
    
         
            -
            PKLExport int pkl_edgepaint(PKLImage pkl);
         
     | 
| 
      
 356 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 357 
     | 
    
         
            +
            /** pattern                                                 **/
         
     | 
| 
      
 358 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 359 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 360 
     | 
    
         
            +
            //  パターン描画
         
     | 
| 
      
 361 
     | 
    
         
            +
            //	pw,ph:	パターンのサイズ
         
     | 
| 
      
 362 
     | 
    
         
            +
            //			[六角形]phのサイズをpwの3倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
      
 363 
     | 
    
         
            +
            //			[ひし形]phのサイズをpwの2倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
      
 364 
     | 
    
         
            +
            //						ex1) pw=10,ph=10にすると横長のパターン
         
     | 
| 
      
 365 
     | 
    
         
            +
            //						ex2) pw=10,ph=20にすると縦横同じ大きさのパターン
         
     | 
| 
      
 366 
     | 
    
         
            +
            //						ex3) pw=10,ph=30にすると縦長のパターン
         
     | 
| 
      
 367 
     | 
    
         
            +
            //			[  円  ]phのサイズをpwの3倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
      
 368 
     | 
    
         
            +
            //			[レンガ]phのサイズをpwの4倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
      
 369 
     | 
    
         
            +
            //	type:	塗り方式
         
     | 
| 
      
 370 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 371 
     | 
    
         
            +
            // パターンタイプ
         
     | 
| 
      
 372 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 373 
     | 
    
         
            +
            	PKL_PATTERN_HEXAGON,	//六角形(default)
         
     | 
| 
      
 374 
     | 
    
         
            +
            	PKL_PATTERN_DIAMOND,	//ひし形
         
     | 
| 
      
 375 
     | 
    
         
            +
            	PKL_PATTERN_CIRCLE,		//円
         
     | 
| 
      
 376 
     | 
    
         
            +
            	PKL_PATTERN_BRICK		//レンガ
         
     | 
| 
      
 377 
     | 
    
         
            +
            } PKL_PATTERN_TYPE;
         
     | 
| 
       431 
378 
     | 
    
         | 
| 
       432 
     | 
    
         
            -
             
     | 
| 
       433 
     | 
    
         
            -
             
     | 
| 
       434 
     | 
    
         
            -
             
     | 
| 
       435 
     | 
    
         
            -
             
     | 
| 
      
 379 
     | 
    
         
            +
            // パターンの塗り方式
         
     | 
| 
      
 380 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 381 
     | 
    
         
            +
            	PKL_PAINT_LINE,	//ライン(パターン内の横方向の平均で塗る)(default)
         
     | 
| 
      
 382 
     | 
    
         
            +
            	PKL_PAINT_AVE,	//モザイク(パターン内の平均色で塗る)
         
     | 
| 
      
 383 
     | 
    
         
            +
            } PKL_PAINT_TYPE;
         
     | 
| 
       436 
384 
     | 
    
         | 
| 
      
 385 
     | 
    
         
            +
            PKLExport int pkl_pattern(PKLImage pkl, int pw, int ph, PKL_PATTERN_TYPE mode, PKL_PAINT_TYPE type);
         
     | 
| 
       437 
386 
     | 
    
         | 
| 
       438 
     | 
    
         
            -
             
     | 
| 
       439 
     | 
    
         
            -
            // 
     | 
| 
       440 
     | 
    
         
            -
            // 
     | 
| 
       441 
     | 
    
         
            -
             
     | 
| 
      
 387 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 388 
     | 
    
         
            +
            //  モザイク処理
         
     | 
| 
      
 389 
     | 
    
         
            +
            //	mx,my:モザイクのピクセルサイズ(それぞれ、幅・高さ)
         
     | 
| 
      
 390 
     | 
    
         
            +
            //	1以下の時には変化はありません。画像サイズ以上の時には1色の画像になります
         
     | 
| 
      
 391 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 392 
     | 
    
         
            +
            PKLExport int pkl_mosaic(PKLImage pkl, int msx, int msy);
         
     | 
| 
       442 
393 
     | 
    
         | 
| 
      
 394 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 395 
     | 
    
         
            +
            // モザイク処理&2値化
         
     | 
| 
      
 396 
     | 
    
         
            +
            //	ms:モザイクのサイズ
         
     | 
| 
      
 397 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 398 
     | 
    
         
            +
            PKLExport int pkl_pixelate(PKLImage pkl, int ms);
         
     | 
| 
       443 
399 
     | 
    
         | 
| 
       444 
     | 
    
         
            -
             
     | 
| 
       445 
     | 
    
         
            -
            //  
     | 
| 
       446 
     | 
    
         
            -
            //	 
     | 
| 
      
 400 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 401 
     | 
    
         
            +
            // モザイクグリッド
         
     | 
| 
      
 402 
     | 
    
         
            +
            //	モザイク化した上でグリッド線を引く
         
     | 
| 
       447 
403 
     | 
    
         
             
            //		msx,msy:	モザイクのピクセルサイズ(それぞれ、幅・高さ)
         
     | 
| 
       448 
404 
     | 
    
         
             
            //		color:		グリッド線の調整値
         
     | 
| 
       449 
405 
     | 
    
         
             
            //					グリッド線色は単色ではなく、モザイク領域の色を元に生成する
         
     | 
| 
         @@ -451,44 +407,187 @@ PKLExport int pkl_tileslit(PKLImage pkl, int area, int shift); 
     | 
|
| 
       451 
407 
     | 
    
         
             
            //						0の時:モザイクと同色になり表出しない
         
     | 
| 
       452 
408 
     | 
    
         
             
            //					  255の時:いわゆる白線
         
     | 
| 
       453 
409 
     | 
    
         
             
            //					 -255の時:いわゆる黒線
         
     | 
| 
      
 410 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       454 
411 
     | 
    
         
             
            PKLExport int pkl_grid(PKLImage pkl, int msx, int msy, int color);
         
     | 
| 
       455 
412 
     | 
    
         | 
| 
      
 413 
     | 
    
         
            +
            // お風呂のタイル風
         
     | 
| 
      
 414 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 415 
     | 
    
         
            +
            	PKL_TILE_RECT,		//四角形
         
     | 
| 
      
 416 
     | 
    
         
            +
            	PKL_TILE_HEXAGON,	//六角形
         
     | 
| 
      
 417 
     | 
    
         
            +
            	PKL_TILE_DIAMOND,	//ひし形
         
     | 
| 
      
 418 
     | 
    
         
            +
            	PKL_TILE_CIRCLE,	//円
         
     | 
| 
      
 419 
     | 
    
         
            +
            	PKL_TILE_BRICK		//レンガ
         
     | 
| 
      
 420 
     | 
    
         
            +
            } PKL_TILE_TYPE;
         
     | 
| 
      
 421 
     | 
    
         
            +
            PKLExport int pkl_tile(PKLImage pkl, PKL_TILE_TYPE type, int msx, int msy, unsigned char level);
         
     | 
| 
      
 422 
     | 
    
         
            +
             
     | 
| 
      
 423 
     | 
    
         
            +
             
     | 
| 
      
 424 
     | 
    
         
            +
             
     | 
| 
      
 425 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 426 
     | 
    
         
            +
            /** ボロノイ分割                                            **/
         
     | 
| 
      
 427 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 428 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 429 
     | 
    
         
            +
            // ボロノイ分割(ゾーン指定)
         
     | 
| 
      
 430 
     | 
    
         
            +
            //	zone: ボロノイサイズ(>=2, <w,h)
         
     | 
| 
      
 431 
     | 
    
         
            +
            //	bordercolor: NULLの時は境界線を引かない。境界線色はpkl_color_createで作る
         
     | 
| 
      
 432 
     | 
    
         
            +
            //	test: 真 AND bordercolor!=NULLの時、分割シュミレーション図を出力する
         
     | 
| 
      
 433 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 434 
     | 
    
         
            +
            PKLExport int pkl_voronoi_zone(PKLImage pkl, int zone, PKLColor bordercolor, int test);
         
     | 
| 
      
 435 
     | 
    
         
            +
             
     | 
| 
      
 436 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 437 
     | 
    
         
            +
            // ボロノイ分割(母点数指定)
         
     | 
| 
      
 438 
     | 
    
         
            +
            //	count: 母点数(>=10)
         
     | 
| 
      
 439 
     | 
    
         
            +
            //	bordercolor: NULLの時は境界線を引かない。境界線色はpkl_color_createで作る
         
     | 
| 
      
 440 
     | 
    
         
            +
            //	test: 真 AND bordercolor!=NULLの時、分割シュミレーション図を出力する
         
     | 
| 
      
 441 
     | 
    
         
            +
            //	
         
     | 
| 
      
 442 
     | 
    
         
            +
            //	*zoneとの違いは、母点がよりランダムに配置されるという点
         
     | 
| 
      
 443 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 444 
     | 
    
         
            +
            PKLExport int pkl_voronoi_count(PKLImage pkl, int count, PKLColor bordercolor, int test);
         
     | 
| 
      
 445 
     | 
    
         
            +
             
     | 
| 
      
 446 
     | 
    
         
            +
             
     | 
| 
      
 447 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 448 
     | 
    
         
            +
            /** decrease                                                **/
         
     | 
| 
      
 449 
     | 
    
         
            +
            /**   色数を変える(減色・表色系変更)                        **/
         
     | 
| 
      
 450 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 451 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 452 
     | 
    
         
            +
            // ポスタライズ(階調変更)
         
     | 
| 
      
 453 
     | 
    
         
            +
            //	level:階調数(1-256) *256を何分割するかということ
         
     | 
| 
      
 454 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 455 
     | 
    
         
            +
            PKLExport int pkl_posterize(PKLImage pkl, int level);
         
     | 
| 
      
 456 
     | 
    
         
            +
             
     | 
| 
      
 457 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 458 
     | 
    
         
            +
            // 色数削減
         
     | 
| 
      
 459 
     | 
    
         
            +
            //	単純にlevelで指定した下位ビットを削除する。
         
     | 
| 
      
 460 
     | 
    
         
            +
            //	level: 無効にする下位ビット数(0-255)
         
     | 
| 
      
 461 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 462 
     | 
    
         
            +
            PKLExport int pkl_cutcolor(PKLImage pkl, int level);
         
     | 
| 
       456 
463 
     | 
    
         | 
| 
       457 
     | 
    
         
            -
             
     | 
| 
       458 
     | 
    
         
            -
             
     | 
| 
       459 
     | 
    
         
            -
             
     | 
| 
       460 
     | 
    
         
            -
            // 
     | 
| 
       461 
     | 
    
         
            -
             
     | 
| 
       462 
     | 
    
         
            -
             
     | 
| 
       463 
     | 
    
         
            -
             
     | 
| 
       464 
     | 
    
         
            -
             
     | 
| 
      
 464 
     | 
    
         
            +
            // CMYK→RGB
         
     | 
| 
      
 465 
     | 
    
         
            +
            PKLExport int pkl_rgb(PKLImage pkl);
         
     | 
| 
      
 466 
     | 
    
         
            +
             
     | 
| 
      
 467 
     | 
    
         
            +
            // RGB→GRAYSCALE
         
     | 
| 
      
 468 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 469 
     | 
    
         
            +
            	PKL_GRAY_NRM,		//加重平均法(最も一般的なグレースケール)
         
     | 
| 
      
 470 
     | 
    
         
            +
            	PKL_GRAY_MED,		//中間値法
         
     | 
| 
      
 471 
     | 
    
         
            +
            	PKL_GRAY_AVE		//単純平均法
         
     | 
| 
      
 472 
     | 
    
         
            +
            } PKL_GRAYTYPE;
         
     | 
| 
      
 473 
     | 
    
         
            +
            PKLExport int pkl_gray(PKLImage pkl, PKL_GRAYTYPE type);
         
     | 
| 
      
 474 
     | 
    
         
            +
             
     | 
| 
      
 475 
     | 
    
         
            +
            // GRAYSCALE→2c
         
     | 
| 
      
 476 
     | 
    
         
            +
            PKLExport int pkl_2c(PKLImage pkl, int threshold);
         
     | 
| 
      
 477 
     | 
    
         
            +
             
     | 
| 
      
 478 
     | 
    
         
            +
             
     | 
| 
      
 479 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 480 
     | 
    
         
            +
            /** divide(パターン分割)                                    **/
         
     | 
| 
      
 481 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 482 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 483 
     | 
    
         
            +
            // 格子のずらし配置
         
     | 
| 
      
 484 
     | 
    
         
            +
            //	area:格子のサイズ
         
     | 
| 
      
 485 
     | 
    
         
            +
            //	shift:格子をずらす範囲
         
     | 
| 
      
 486 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 487 
     | 
    
         
            +
            PKLExport int pkl_tileslit(PKLImage pkl, int area, int shift);
         
     | 
| 
       465 
488 
     | 
    
         | 
| 
       466 
     | 
    
         
            -
             
     | 
| 
      
 489 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 490 
     | 
    
         
            +
            // フォトフレーム分割
         
     | 
| 
      
 491 
     | 
    
         
            +
            //	イメージを分割し、フォトフレームのようにする
         
     | 
| 
      
 492 
     | 
    
         
            +
            //		backcolor:	背景色(NULLの時、白)
         
     | 
| 
      
 493 
     | 
    
         
            +
            //		wbs,hbs:	オリジナルイメージの縦横分割数(>0)
         
     | 
| 
      
 494 
     | 
    
         
            +
            //		margin:		キャンバスのマージン(上下左右の空間)(>0)
         
     | 
| 
      
 495 
     | 
    
         
            +
            //		frame:		フレームの太さ(>=1)
         
     | 
| 
      
 496 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 497 
     | 
    
         
            +
            PKLExport int pkl_splitframe(PKLImage pkl, PKLColor backcolor, int wbs, int hbs, int margin, int frame);
         
     | 
| 
      
 498 
     | 
    
         
            +
             
     | 
| 
      
 499 
     | 
    
         
            +
             
     | 
| 
      
 500 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 501 
     | 
    
         
            +
            /** composite(合成)                                         **/
         
     | 
| 
      
 502 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 503 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 504 
     | 
    
         
            +
            // 画像の合成
         
     | 
| 
      
 505 
     | 
    
         
            +
            //	parentの上にchildを乗せる
         
     | 
| 
      
 506 
     | 
    
         
            +
            //		parent:		ベース(処理後はこのオブジェクトが更新される)
         
     | 
| 
      
 507 
     | 
    
         
            +
            //		child:		乗せる画像(このオブジェクトは処理しても不可侵)
         
     | 
| 
      
 508 
     | 
    
         
            +
            //		xpos,ypos:	childを乗せるparent上の座標.
         
     | 
| 
      
 509 
     | 
    
         
            +
            //		transcolor:	透明にする色。NULLの時は透明色の設定なし
         
     | 
| 
      
 510 
     | 
    
         
            +
            //	* parentとchildは同じカラーモードでなければエラーとなる
         
     | 
| 
      
 511 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 512 
     | 
    
         
            +
            PKLExport int pkl_composite(PKLImage parent, PKLImage child, int xpos, int ypos, PKLColor transcolor);
         
     | 
| 
      
 513 
     | 
    
         
            +
             
     | 
| 
      
 514 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 515 
     | 
    
         
            +
            // アルファブレンド
         
     | 
| 
       467 
516 
     | 
    
         
             
            //	parentの上にchildをアルファブレンドで乗せる
         
     | 
| 
       468 
     | 
    
         
            -
            //	<引数>
         
     | 
| 
       469 
517 
     | 
    
         
             
            //		parent: ベース(処理後はこのオブジェクトが更新される)
         
     | 
| 
       470 
518 
     | 
    
         
             
            //		child: 乗せる画像(このオブジェクトは処理しても不可侵)
         
     | 
| 
       471 
519 
     | 
    
         
             
            //		xpos,ypos:childを乗せるparent上の座標.
         
     | 
| 
       472 
     | 
    
         
            -
            //		           必ずparent上の座標でなければならない.
         
     | 
| 
       473 
520 
     | 
    
         
             
            //		alpha: α値(0-255)
         
     | 
| 
      
 521 
     | 
    
         
            +
            //				alpha<0の時: 特殊モード(画像の縁ほどアルファを強調する)
         
     | 
| 
       474 
522 
     | 
    
         
             
            //				alpha=0の時:   childは100%で乗る
         
     | 
| 
       475 
523 
     | 
    
         
             
            //				alpha=255の時:childは  0%で乗る
         
     | 
| 
       476 
     | 
    
         
            -
            //	 
     | 
| 
       477 
     | 
    
         
            -
             
     | 
| 
      
 524 
     | 
    
         
            +
            //	* parentとchildは同じカラーモードでなければエラーとなる
         
     | 
| 
      
 525 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       478 
526 
     | 
    
         
             
            PKLExport int pkl_alphablend(PKLImage parent, PKLImage child, int xpos, int ypos, int alpha);
         
     | 
| 
       479 
527 
     | 
    
         | 
| 
       480 
     | 
    
         
            -
             
     | 
| 
       481 
     | 
    
         
            -
            // 
     | 
| 
       482 
     | 
    
         
            -
             
     | 
| 
       483 
     | 
    
         
            -
             
     | 
| 
      
 528 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 529 
     | 
    
         
            +
            // 影付け
         
     | 
| 
      
 530 
     | 
    
         
            +
            //	backcolor: NULLの時は白
         
     | 
| 
      
 531 
     | 
    
         
            +
            //	shadowcolor: NULLの時は黒
         
     | 
| 
      
 532 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 533 
     | 
    
         
            +
            PKLExport int pkl_shadowframe(PKLImage pkl, int margin, PKLColor backcolor, PKLColor shadowcolor);
         
     | 
| 
      
 534 
     | 
    
         
            +
             
     | 
| 
      
 535 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 536 
     | 
    
         
            +
            // 任意の位置に影付きで画像を配置する
         
     | 
| 
      
 537 
     | 
    
         
            +
            //	shadowcolor: NULLの時は黒
         
     | 
| 
      
 538 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 539 
     | 
    
         
            +
            PKLExport int pkl_randomshadow(PKLImage canvas, PKLImage pasteimage,
         
     | 
| 
      
 540 
     | 
    
         
            +
            				int top, int left, int margin, PKLColor shadowcolor);
         
     | 
| 
      
 541 
     | 
    
         
            +
             
     | 
| 
      
 542 
     | 
    
         
            +
             
     | 
| 
      
 543 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 544 
     | 
    
         
            +
            /** effect(一般的なエフェクト)                              **/
         
     | 
| 
      
 545 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 546 
     | 
    
         
            +
            // 反転
         
     | 
| 
      
 547 
     | 
    
         
            +
            PKLExport int pkl_invert(PKLImage pkl);
         
     | 
| 
       484 
548 
     | 
    
         | 
| 
       485 
     | 
    
         
            -
             
     | 
| 
       486 
     | 
    
         
            -
            PKLExport int  
     | 
| 
      
 549 
     | 
    
         
            +
            // 拡散
         
     | 
| 
      
 550 
     | 
    
         
            +
            PKLExport int pkl_noise(PKLImage pkl, int noise);
         
     | 
| 
       487 
551 
     | 
    
         | 
| 
       488 
     | 
    
         
            -
             
     | 
| 
       489 
     | 
    
         
            -
            // 
     | 
| 
       490 
     | 
    
         
            -
             
     | 
| 
      
 552 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 553 
     | 
    
         
            +
            // (安易な)セピア
         
     | 
| 
      
 554 
     | 
    
         
            +
            //	red_weight,green_weight,blue_weight:
         
     | 
| 
      
 555 
     | 
    
         
            +
            //		red,green,blueそれぞれに対しての重み
         
     | 
| 
      
 556 
     | 
    
         
            +
            //		値が大きいほど、その色が強く出る
         
     | 
| 
      
 557 
     | 
    
         
            +
            //	* RGBのみに対応
         
     | 
| 
      
 558 
     | 
    
         
            +
            //	* セピアっぽくするのであれば、redの重みを1.0として、他の重みを1.0より小さくする
         
     | 
| 
      
 559 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 560 
     | 
    
         
            +
            PKLExport int pkl_sepia(PKLImage pkl, double red_weight, double green_weight, double blue_weight);
         
     | 
| 
      
 561 
     | 
    
         
            +
             
     | 
| 
      
 562 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 563 
     | 
    
         
            +
            // (安易な)油絵化
         
     | 
| 
      
 564 
     | 
    
         
            +
            //	油絵のようにする
         
     | 
| 
      
 565 
     | 
    
         
            +
            //		weight:	筆の太さ(というか最頻色走査領域のサイズ)
         
     | 
| 
      
 566 
     | 
    
         
            +
            //				例えば、3を指定した場合、近傍3x3の領域の最頻色が選択される
         
     | 
| 
      
 567 
     | 
    
         
            +
            //	* weightを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 568 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 569 
     | 
    
         
            +
            PKLExport int pkl_oilpaint(PKLImage pkl, int weight);
         
     | 
| 
      
 570 
     | 
    
         
            +
             
     | 
| 
      
 571 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 572 
     | 
    
         
            +
            // kuwahara(from MemoNyanDum)
         
     | 
| 
      
 573 
     | 
    
         
            +
            //	kuwaharaオペレータを使った抽象化で油絵のようになる。
         
     | 
| 
      
 574 
     | 
    
         
            +
            //	pkl_oilpaint()との違いは、エッジがより鮮明であるという点。
         
     | 
| 
      
 575 
     | 
    
         
            +
            //		range: 調整領域(>=2)
         
     | 
| 
      
 576 
     | 
    
         
            +
            //	* rangeを大きくしすぎると、処理が重くなる。注意せよ
         
     | 
| 
      
 577 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 578 
     | 
    
         
            +
            PKLExport int pkl_kuwahara(PKLImage pkl, int range);
         
     | 
| 
       491 
579 
     | 
    
         | 
| 
      
 580 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 581 
     | 
    
         
            +
            // VTR調
         
     | 
| 
      
 582 
     | 
    
         
            +
            //	colspace;	行の間隔
         
     | 
| 
      
 583 
     | 
    
         
            +
            //	gst:	横方向のブレ
         
     | 
| 
      
 584 
     | 
    
         
            +
            //	cst:	行の色差分
         
     | 
| 
      
 585 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 586 
     | 
    
         
            +
            PKLExport int pkl_vtr(PKLImage pkl, int colspace, int gst, int cst);
         
     | 
| 
      
 587 
     | 
    
         
            +
             
     | 
| 
      
 588 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 589 
     | 
    
         
            +
            // dither
         
     | 
| 
      
 590 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       492 
591 
     | 
    
         
             
            typedef enum {
         
     | 
| 
       493 
592 
     | 
    
         
             
            	PKL_DITHER_NON,				//pkl_dithercolorではdefaultとなる
         
     | 
| 
       494 
593 
     | 
    
         
             
            	PKL_DITHER_FLOYDSTEINBERG,	//default
         
     | 
| 
         @@ -498,107 +597,142 @@ typedef enum { 
     | 
|
| 
       498 
597 
     | 
    
         
             
            } PKL_DITHER;
         
     | 
| 
       499 
598 
     | 
    
         
             
            PKLExport int pkl_dither(PKLImage pkl, PKL_DITHER dither);
         
     | 
| 
       500 
599 
     | 
    
         | 
| 
       501 
     | 
    
         
            -
             
     | 
| 
       502 
     | 
    
         
            -
            //  
     | 
| 
       503 
     | 
    
         
            -
             
     | 
| 
       504 
     | 
    
         
            -
             
     | 
| 
       505 
     | 
    
         
            -
             
     | 
| 
       506 
     | 
    
         
            -
            	PKL_PAINT_AVE,	//モザイク(パターン内の平均色で塗る)
         
     | 
| 
       507 
     | 
    
         
            -
            } PKL_PAINT_TYPE;
         
     | 
| 
       508 
     | 
    
         
            -
             
     | 
| 
       509 
     | 
    
         
            -
            /* 六角形 */
         
     | 
| 
       510 
     | 
    
         
            -
            //	pw,ph:	パターンのサイズ
         
     | 
| 
       511 
     | 
    
         
            -
            //			phのサイズをpwの3倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
       512 
     | 
    
         
            -
            //	type:	塗り方式
         
     | 
| 
       513 
     | 
    
         
            -
            PKLExport int pkl_pattern_hexagon(PKLImage pkl, int pw, int ph, PKL_PAINT_TYPE type);
         
     | 
| 
       514 
     | 
    
         
            -
             
     | 
| 
       515 
     | 
    
         
            -
            /* ひし形 */
         
     | 
| 
       516 
     | 
    
         
            -
            //	pw,ph:	パターンのサイズ
         
     | 
| 
       517 
     | 
    
         
            -
            //			phのサイズをpwの2倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
       518 
     | 
    
         
            -
            //	type:	塗り方式
         
     | 
| 
       519 
     | 
    
         
            -
            //		ex1) pw=10,ph=10にすると横長のパターン
         
     | 
| 
       520 
     | 
    
         
            -
            //		ex2) pw=10,ph=20にすると縦横同じ大きさのパターン
         
     | 
| 
       521 
     | 
    
         
            -
            //		ex3) pw=10,ph=30にすると縦長のパターン
         
     | 
| 
       522 
     | 
    
         
            -
            PKLExport int pkl_pattern_diamond(PKLImage pkl, int pw, int ph, PKL_PAINT_TYPE type);
         
     | 
| 
       523 
     | 
    
         
            -
             
     | 
| 
       524 
     | 
    
         
            -
            /* 円 */
         
     | 
| 
       525 
     | 
    
         
            -
            //	pw,ph:	パターンのサイズ
         
     | 
| 
       526 
     | 
    
         
            -
            //			phのサイズをpwの3倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
       527 
     | 
    
         
            -
            //	type:	塗り方式
         
     | 
| 
       528 
     | 
    
         
            -
            PKLExport int pkl_pattern_circle(PKLImage pkl, int pw, int ph, PKL_PAINT_TYPE type);
         
     | 
| 
       529 
     | 
    
         
            -
             
     | 
| 
       530 
     | 
    
         
            -
            /* レンガ */
         
     | 
| 
       531 
     | 
    
         
            -
            //	pw,ph:	パターンのサイズ
         
     | 
| 
       532 
     | 
    
         
            -
            //			phのサイズをpwの4倍に設定すると、縦横サイズが同じパターンになる
         
     | 
| 
       533 
     | 
    
         
            -
            //	type:	塗り方式
         
     | 
| 
       534 
     | 
    
         
            -
            PKLExport int pkl_pattern_brick(PKLImage pkl, int pw, int ph, PKL_PAINT_TYPE type);
         
     | 
| 
       535 
     | 
    
         
            -
             
     | 
| 
       536 
     | 
    
         
            -
             
     | 
| 
       537 
     | 
    
         
            -
            /* ボロノイ分割(タイプ1) */
         
     | 
| 
       538 
     | 
    
         
            -
            // zone: ボロノイサイズ(>=2, <w,h)
         
     | 
| 
       539 
     | 
    
         
            -
            // bordercolor: -1の時は境界線を引かない。境界線色はpkl_colorで作る
         
     | 
| 
       540 
     | 
    
         
            -
            // test: 真の時、分割シュミレーション図を出力する
         
     | 
| 
       541 
     | 
    
         
            -
            PKLExport int pkl_voronoi_type1(PKLImage pkl, int zone, int bordercolor, int test);
         
     | 
| 
       542 
     | 
    
         
            -
             
     | 
| 
       543 
     | 
    
         
            -
             
     | 
| 
       544 
     | 
    
         
            -
            /* ボロノイ分割(タイプ2) */
         
     | 
| 
       545 
     | 
    
         
            -
            //	count: 母点数(>=10)
         
     | 
| 
       546 
     | 
    
         
            -
            //	bordercolor: -1の時は境界線を引かない。境界線色はpkl_colorで作る
         
     | 
| 
       547 
     | 
    
         
            -
            //	test: 真の時、分割シュミレーション図を出力する
         
     | 
| 
       548 
     | 
    
         
            -
            //	
         
     | 
| 
       549 
     | 
    
         
            -
            //	*type1との違いは、母点がよりランダムに配置されるという点
         
     | 
| 
       550 
     | 
    
         
            -
            PKLExport int pkl_voronoi_type2(PKLImage pkl, int count, int bordercolor, int test);
         
     | 
| 
       551 
     | 
    
         
            -
             
     | 
| 
      
 600 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 601 
     | 
    
         
            +
            // 輪郭抽出
         
     | 
| 
      
 602 
     | 
    
         
            +
            //	edge: エッジの太さ
         
     | 
| 
      
 603 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 604 
     | 
    
         
            +
            PKLExport int pkl_edgepaint(PKLImage pkl, int edge);
         
     | 
| 
       552 
605 
     | 
    
         | 
| 
       553 
     | 
    
         
            -
             
     | 
| 
       554 
     | 
    
         
            -
            //  
     | 
| 
       555 
     | 
    
         
            -
             
     | 
| 
       556 
     | 
    
         
            -
             
     | 
| 
       557 
     | 
    
         
            -
             
     | 
| 
       558 
     | 
    
         
            -
            //	dither:		真の時dither処理する
         
     | 
| 
       559 
     | 
    
         
            -
            // *RGBのみ
         
     | 
| 
       560 
     | 
    
         
            -
            // *設定した色数で保存するには、PNGかBMPにする必要がある(JPEGは非可逆のため)
         
     | 
| 
       561 
     | 
    
         
            -
            PKLExport int pkl_mediancut(PKLImage pkl, int ncolors, int dither);
         
     | 
| 
       562 
     | 
    
         
            -
             
     | 
| 
       563 
     | 
    
         
            -
            /* Neural-Net Quantization */
         
     | 
| 
       564 
     | 
    
         
            -
            //	ncolors:	色数(1..256)
         
     | 
| 
       565 
     | 
    
         
            -
            //	sample:		sampling factor(1..30) 1=slowest/best, 30=fastest
         
     | 
| 
       566 
     | 
    
         
            -
            // *設定した色数で保存するには、PNGかBMPにする必要がある(JPEGは非可逆のため)
         
     | 
| 
       567 
     | 
    
         
            -
            // *メディアンカットより質のいい減色ができるが遅い。
         
     | 
| 
       568 
     | 
    
         
            -
            PKLExport int pkl_neuquant(PKLImage pkl, int ncolors, int sample);
         
     | 
| 
       569 
     | 
    
         
            -
             
     | 
| 
       570 
     | 
    
         
            -
            /* Xiaolin Wu */
         
     | 
| 
       571 
     | 
    
         
            -
            //	ncolors::色数(1..256)
         
     | 
| 
       572 
     | 
    
         
            -
            // *設定した色数で保存するには、PNGかBMPにする必要がある(JPEGは非可逆のため)
         
     | 
| 
       573 
     | 
    
         
            -
            PKLExport int pkl_wu(PKLImage pkl, int ncolors);
         
     | 
| 
       574 
     | 
    
         
            -
             
     | 
| 
       575 
     | 
    
         
            -
             
     | 
| 
       576 
     | 
    
         
            -
            /* ポスタライズ(階調変更) */
         
     | 
| 
       577 
     | 
    
         
            -
            // level:階調数(1-256) *256を何分割するかということ
         
     | 
| 
       578 
     | 
    
         
            -
            PKLExport int pkl_posterize(PKLImage pkl, int level);
         
     | 
| 
      
 606 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 607 
     | 
    
         
            +
            // 輪郭抽出
         
     | 
| 
      
 608 
     | 
    
         
            +
            //	threshold: 輪郭強調度(値が小さいほど、輪郭判定は荒くなる-->全体が黒くなる)
         
     | 
| 
      
 609 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 610 
     | 
    
         
            +
            PKLExport int pkl_edge(PKLImage pkl, int threshold);
         
     | 
| 
       579 
611 
     | 
    
         | 
| 
      
 612 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 613 
     | 
    
         
            +
            // 輪郭抽出
         
     | 
| 
      
 614 
     | 
    
         
            +
            //	輪郭を抽出して滑らかに描画する
         
     | 
| 
      
 615 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 616 
     | 
    
         
            +
            PKLExport int pkl_contour(PKLImage pkl);
         
     | 
| 
       580 
617 
     | 
    
         | 
| 
       581 
     | 
    
         
            -
             
     | 
| 
       582 
     | 
    
         
            -
            //  
     | 
| 
       583 
     | 
    
         
            -
            // 
     | 
| 
       584 
     | 
    
         
            -
             
     | 
| 
      
 618 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 619 
     | 
    
         
            +
            // エッジ(輪郭)を強調する
         
     | 
| 
      
 620 
     | 
    
         
            +
            //	unsharpは画像全体をシャープにするが、これはエッジ部分のみの強調
         
     | 
| 
      
 621 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 622 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 623 
     | 
    
         
            +
            	PKL_FOCUS_DETAIL,	//弱い
         
     | 
| 
      
 624 
     | 
    
         
            +
            	PKL_FOCUS_FOCUS,	//中間
         
     | 
| 
      
 625 
     | 
    
         
            +
            	PKL_FOCUS_EDGES		//強い
         
     | 
| 
      
 626 
     | 
    
         
            +
            } PKL_FOCUS;
         
     | 
| 
      
 627 
     | 
    
         
            +
            PKLExport int pkl_focus(PKLImage pkl, PKL_FOCUS type);
         
     | 
| 
       585 
628 
     | 
    
         | 
| 
      
 629 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 630 
     | 
    
         
            +
            // エンボス
         
     | 
| 
      
 631 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 632 
     | 
    
         
            +
            typedef enum {
         
     | 
| 
      
 633 
     | 
    
         
            +
            	PKL_EMBOSS_EMBOSS,		//エンボス1
         
     | 
| 
      
 634 
     | 
    
         
            +
            	PKL_EMBOSS_HEAVY,		//エンボス2
         
     | 
| 
      
 635 
     | 
    
         
            +
            	PKL_EMBOSS_LIGHT,		//エンボス3
         
     | 
| 
      
 636 
     | 
    
         
            +
            	PKL_EMBOSS_LAPLACIAN	//輪郭抽出
         
     | 
| 
      
 637 
     | 
    
         
            +
            } PKL_EMBOSS;
         
     | 
| 
      
 638 
     | 
    
         
            +
            PKLExport int pkl_emboss(PKLImage pkl, PKL_EMBOSS type);
         
     | 
| 
       586 
639 
     | 
    
         | 
| 
       587 
     | 
    
         
            -
             
     | 
| 
       588 
     | 
    
         
            -
            //  
     | 
| 
       589 
     | 
    
         
            -
            //	 
     | 
| 
       590 
     | 
    
         
            -
             
     | 
| 
       591 
     | 
    
         
            -
             
     | 
| 
      
 640 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 641 
     | 
    
         
            +
            // カスタムテーブルを設定できるエンボス
         
     | 
| 
      
 642 
     | 
    
         
            +
            //	mask: マスク配列
         
     | 
| 
      
 643 
     | 
    
         
            +
            //	row: maskの1行の要素数
         
     | 
| 
      
 644 
     | 
    
         
            +
            //	col: maskの行数
         
     | 
| 
      
 645 
     | 
    
         
            +
            //	factor: 輪郭部分の協調度
         
     | 
| 
      
 646 
     | 
    
         
            +
            //	offset: 輪郭以外の部分の加算色(127:グレー基調・255:白基調)
         
     | 
| 
      
 647 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 648 
     | 
    
         
            +
            PKLExport int pkl_emboss2(PKLImage pkl, int *mask, int row, int col, double factor, int offset);
         
     | 
| 
      
 649 
     | 
    
         
            +
             
     | 
| 
      
 650 
     | 
    
         
            +
             
     | 
| 
      
 651 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 652 
     | 
    
         
            +
            /** camera(カメラ撮影風)                                    **/
         
     | 
| 
      
 653 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 654 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 655 
     | 
    
         
            +
            // vignette
         
     | 
| 
      
 656 
     | 
    
         
            +
            //	color: 透過色
         
     | 
| 
      
 657 
     | 
    
         
            +
            //	trans: 透過率(0-100%)
         
     | 
| 
      
 658 
     | 
    
         
            +
            //	radius: 半径
         
     | 
| 
      
 659 
     | 
    
         
            +
            //	x, y: 中心点
         
     | 
| 
      
 660 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 661 
     | 
    
         
            +
            PKLExport int pkl_vignette(PKLImage pkl, PKLColor color, int trans, int radius, int x, int y);
         
     | 
| 
      
 662 
     | 
    
         
            +
             
     | 
| 
      
 663 
     | 
    
         
            +
            // ラウンドぼかし(中心から離れるほどぼかしが強くなる)
         
     | 
| 
      
 664 
     | 
    
         
            +
            PKLExport int pkl_vaseline(PKLImage pkl, int radius, int x, int y);
         
     | 
| 
      
 665 
     | 
    
         
            +
             
     | 
| 
      
 666 
     | 
    
         
            +
            // vignette + vaseline
         
     | 
| 
      
 667 
     | 
    
         
            +
            PKLExport int pkl_vv(PKLImage pkl, PKLColor color, int trans, int radius, int x, int y);
         
     | 
| 
      
 668 
     | 
    
         
            +
             
     | 
| 
      
 669 
     | 
    
         
            +
            // 銀塩フィルム風
         
     | 
| 
      
 670 
     | 
    
         
            +
            PKLExport int pkl_film(PKLImage pkl, PKLColor color, int trans);
         
     | 
| 
      
 671 
     | 
    
         
            +
             
     | 
| 
      
 672 
     | 
    
         
            +
            // スポットライト風
         
     | 
| 
      
 673 
     | 
    
         
            +
            //PKLExport int pkl_spotlight(PKLImage pkl, int radius, PKLColor color, int trans);
         
     | 
| 
      
 674 
     | 
    
         
            +
             
     | 
| 
      
 675 
     | 
    
         
            +
             
     | 
| 
      
 676 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 677 
     | 
    
         
            +
            /** special(フィルターの組み合わせ)                         **/
         
     | 
| 
      
 678 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 679 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 680 
     | 
    
         
            +
            // ポスタライズ(階調変更)→ノイズ除去→レベル補正→輪郭抽出
         
     | 
| 
      
 681 
     | 
    
         
            +
            //	level:階調数(1-256) *256を何分割するかということ
         
     | 
| 
      
 682 
     | 
    
         
            +
            //	low,high,coeff:レベル補正の値(low=1.5%, high=1.5%, coeff=1.0)
         
     | 
| 
      
 683 
     | 
    
         
            +
            //	edge: 0>= (0:エッジ線を引かない、1>:エッジ線を引く.指定値の線の太さのエッジを引く)
         
     | 
| 
      
 684 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 685 
     | 
    
         
            +
            PKLExport int pkl_edgeposter(PKLImage pkl, int level, double low, double high, double coeff, int edge);
         
     | 
| 
      
 686 
     | 
    
         
            +
             
     | 
| 
      
 687 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 688 
     | 
    
         
            +
            // クレヨン風
         
     | 
| 
      
 689 
     | 
    
         
            +
            //	factor:輪郭部分の強調度(5~80)
         
     | 
| 
      
 690 
     | 
    
         
            +
            //	bv1, bv2:拡散レベル(2-step)
         
     | 
| 
      
 691 
     | 
    
         
            +
            //	alpha:合成割合
         
     | 
| 
      
 692 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 693 
     | 
    
         
            +
            PKLExport int pkl_crayon(PKLImage pkl, double factor, int bv1, int bv2, int alpha);
         
     | 
| 
      
 694 
     | 
    
         
            +
             
     | 
| 
      
 695 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 696 
     | 
    
         
            +
            // 輪郭
         
     | 
| 
      
 697 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 698 
     | 
    
         
            +
            PKLExport int pkl_rinkaku(PKLImage pkl, double factor);
         
     | 
| 
      
 699 
     | 
    
         
            +
             
     | 
| 
      
 700 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 701 
     | 
    
         
            +
            // あじさい風
         
     | 
| 
      
 702 
     | 
    
         
            +
            //	zone: ボロノイサイズ(>=2, <w,h)
         
     | 
| 
      
 703 
     | 
    
         
            +
            //	low,high,coeff:レベル補正の値(low=9.0%, high=9.0%, coeff=1.0)
         
     | 
| 
      
 704 
     | 
    
         
            +
            //	mil,env:カラーエンボス値(mil=50, env=70)
         
     | 
| 
      
 705 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 706 
     | 
    
         
            +
            PKLExport int pkl_hydrangea(PKLImage pkl, int zone, double low, double high, double coeff, double mil, double env);
         
     | 
| 
      
 707 
     | 
    
         
            +
             
     | 
| 
      
 708 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 709 
     | 
    
         
            +
            // ふんわりエッジ
         
     | 
| 
      
 710 
     | 
    
         
            +
            //	level:階調数(1-256) *256を何分割するかということ
         
     | 
| 
      
 711 
     | 
    
         
            +
            //	low,high,coeff:レベル補正の値(low=1.5%, high=1.5%, coeff=1.0)
         
     | 
| 
      
 712 
     | 
    
         
            +
            //	threshold:輪郭強調度
         
     | 
| 
      
 713 
     | 
    
         
            +
            //	alpha:合成割合
         
     | 
| 
      
 714 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 715 
     | 
    
         
            +
            PKLExport int pkl_alphaedge(PKLImage pkl, int level, double low, double high, double coeff, int threshold, int alpha);
         
     | 
| 
      
 716 
     | 
    
         
            +
             
     | 
| 
      
 717 
     | 
    
         
            +
             
     | 
| 
      
 718 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 719 
     | 
    
         
            +
            /** scrap(イマイチなシリーズ)                               **/
         
     | 
| 
      
 720 
     | 
    
         
            +
            /*************************************************************/
         
     | 
| 
      
 721 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 722 
     | 
    
         
            +
            // 渦巻き
         
     | 
| 
       592 
723 
     | 
    
         
             
            //	factor:	渦巻き度合い(絶対値で1以下の範囲で指定する。0に近いほど、ゆるやかな渦巻きになる)
         
     | 
| 
       593 
724 
     | 
    
         
             
            // 			* 負数と正数の違いは回転方向
         
     | 
| 
       594 
725 
     | 
    
         
             
            //	x,y:	渦巻きの中心点(座標が画像内に収まらない場合は、中心となる)
         
     | 
| 
       595 
     | 
    
         
            -
            //	backcolor:背景色
         
     | 
| 
       596 
     | 
    
         
            -
            // 
     | 
| 
       597 
     | 
    
         
            -
             
     | 
| 
      
 726 
     | 
    
         
            +
            //	backcolor:背景色(NULLの時は白)
         
     | 
| 
      
 727 
     | 
    
         
            +
            //	* Junkiさんとことの違いは、ピクセル生成時にバイリニアしていないこと。なので、粗い画像になる
         
     | 
| 
      
 728 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 729 
     | 
    
         
            +
            PKLExport int pkl_swirl(PKLImage pkl, double factor, int x, int y, PKLColor backcolor);
         
     | 
| 
       598 
730 
     | 
    
         | 
| 
       599 
     | 
    
         
            -
             
     | 
| 
      
 731 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 732 
     | 
    
         
            +
            // wave
         
     | 
| 
       600 
733 
     | 
    
         
             
            //	factor:周期
         
     | 
| 
       601 
734 
     | 
    
         
             
            //	frequency:振幅
         
     | 
| 
      
 735 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       602 
736 
     | 
    
         
             
            typedef enum {
         
     | 
| 
       603 
737 
     | 
    
         
             
            	PKL_WAVE_HORZ,	//横方向のwave
         
     | 
| 
       604 
738 
     | 
    
         
             
            	PKL_WAVE_VERT,	//縦方向のwave
         
     | 
| 
         @@ -606,29 +740,47 @@ typedef enum { 
     | 
|
| 
       606 
740 
     | 
    
         
             
            } PKL_WAVE;
         
     | 
| 
       607 
741 
     | 
    
         
             
            PKLExport int pkl_wave(PKLImage pkl, PKL_WAVE mode, double factor, double frequency);
         
     | 
| 
       608 
742 
     | 
    
         | 
| 
       609 
     | 
    
         
            -
             
     | 
| 
       610 
     | 
    
         
            -
             
     | 
| 
      
 743 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 744 
     | 
    
         
            +
            // さほど美しくないドット絵
         
     | 
| 
       611 
745 
     | 
    
         
             
            //	円の描画を自力でやっているので、微妙な仕上がり品。
         
     | 
| 
       612 
746 
     | 
    
         
             
            //	zone:ドット化する領域の一辺のサイズ(3..10)
         
     | 
| 
       613 
     | 
    
         
            -
            //	color:ドットの色( 
     | 
| 
       614 
     | 
    
         
            -
             
     | 
| 
       615 
     | 
    
         
            -
             
     | 
| 
       616 
     | 
    
         
            -
             
     | 
| 
       617 
     | 
    
         
            -
             
     | 
| 
       618 
     | 
    
         
            -
            //  
     | 
| 
       619 
     | 
    
         
            -
            //	 
     | 
| 
       620 
     | 
    
         
            -
            // 
     | 
| 
       621 
     | 
    
         
            -
            // 
     | 
| 
       622 
     | 
    
         
            -
             
     | 
| 
       623 
     | 
    
         
            -
            PKLExport int pkl_splitframe(PKLImage pkl, int backcolor, int wbs, int hbs, int margin, int frame);
         
     | 
| 
       624 
     | 
    
         
            -
             
     | 
| 
       625 
     | 
    
         
            -
            /* カラーディザー */
         
     | 
| 
       626 
     | 
    
         
            -
            //weight: 誤差点に確定しなかった色に対する加算色
         
     | 
| 
       627 
     | 
    
         
            -
            //			+255以上の時は完全な白
         
     | 
| 
       628 
     | 
    
         
            -
            //			-255以下の時は完全な黒
         
     | 
| 
      
 747 
     | 
    
         
            +
            //	color:ドットの色(NULLの時は黒)
         
     | 
| 
      
 748 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 749 
     | 
    
         
            +
            PKLExport int pkl_dots(PKLImage pkl, int zone, PKLColor color);
         
     | 
| 
      
 750 
     | 
    
         
            +
             
     | 
| 
      
 751 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 752 
     | 
    
         
            +
            // カラーディザー
         
     | 
| 
      
 753 
     | 
    
         
            +
            //	weight: 誤差点に確定しなかった色に対する加算色
         
     | 
| 
      
 754 
     | 
    
         
            +
            //		+255以上の時は完全な白
         
     | 
| 
      
 755 
     | 
    
         
            +
            //		-255以下の時は完全な黒
         
     | 
| 
      
 756 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
       629 
757 
     | 
    
         
             
            PKLExport int pkl_colordither(PKLImage pkl, int weight);
         
     | 
| 
       630 
758 
     | 
    
         | 
| 
       631 
     | 
    
         
            -
             
     | 
| 
      
 759 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 760 
     | 
    
         
            +
            // fantasy風(from Jimmy Educational NPR system)
         
     | 
| 
      
 761 
     | 
    
         
            +
            //	明度のみにsobelフィルタによる輪郭強調を施す
         
     | 
| 
      
 762 
     | 
    
         
            +
            //		edgeweight: 輪郭強調度(0..5, 0:輪郭強調しない、5:輪郭最大強調)
         
     | 
| 
      
 763 
     | 
    
         
            +
            //		mix: オリジナル画像の明度との合成割合(0..1, 1で100%オリジナルの明度を生かす=>輪郭強調されない)
         
     | 
| 
      
 764 
     | 
    
         
            +
            //		saturation: 彩度調整(0..5, 0:最低(色がなくなる),1:彩度に調整をかけない,1>:彩度があがる)
         
     | 
| 
      
 765 
     | 
    
         
            +
            //		hue: 色相(0..360)
         
     | 
| 
      
 766 
     | 
    
         
            +
            //	* 輪郭抽出を明度に適用するため、黒(all=0)の場合には白とびします。
         
     | 
| 
      
 767 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 768 
     | 
    
         
            +
            PKLExport int pkl_sobelpaint(PKLImage pkl, int edgeweight, float mix, float saturation, float hue);
         
     | 
| 
      
 769 
     | 
    
         
            +
             
     | 
| 
      
 770 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 771 
     | 
    
         
            +
            // イラスト調
         
     | 
| 
      
 772 
     | 
    
         
            +
            //	gap: エッジ判定の際の重み付け
         
     | 
| 
      
 773 
     | 
    
         
            +
            //	edge: エッジの重み(0が最もエッジが強い。0..20程度が目安)
         
     | 
| 
      
 774 
     | 
    
         
            +
            //	gammaint: 絵柄のガンマ評価値(0:暗く評価、100:明るく評価。0..100)
         
     | 
| 
      
 775 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 776 
     | 
    
         
            +
            PKLExport int pkl_illust(PKLImage pkl, int gap, int edge, int gammaint);
         
     | 
| 
      
 777 
     | 
    
         
            +
             
     | 
| 
      
 778 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 779 
     | 
    
         
            +
            // カラーエンボス
         
     | 
| 
      
 780 
     | 
    
         
            +
            //	mil: ハイライト(1..400)
         
     | 
| 
      
 781 
     | 
    
         
            +
            //	env: 環境光(1..100)
         
     | 
| 
      
 782 
     | 
    
         
            +
            //---------------------------------------------------------------------------------------
         
     | 
| 
      
 783 
     | 
    
         
            +
            PKLExport int pkl_color_emboss(PKLImage pkl, double mil, double env);
         
     | 
| 
       632 
784 
     | 
    
         | 
| 
       633 
785 
     | 
    
         | 
| 
       634 
786 
     | 
    
         
             
            #if defined __cplusplus
         
     |