[仮想の水鏡] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

Python(パイソン) プログラム作ってみた インデックス へ

-----

2024.10.28 presented in [note] ( //note.com/runningWater/ )
2024.10.30 rewritten
----------
1 はじめに

これ以降に記述されている内容は、このようなコンピューター・プログラムを制作した、というような事を、ただ、述べているに過ぎない。

以下の記述を読んだ人が、それを単に参考にする、というのであれば、問題は無いと、思われる。

しかし、記述されている内容に沿って、その人が、そこに記されているのと同様の制作や作業を行った際に、その制作、作業、コンピューターの作動の結果、使用されたコンピューター等、様々な方面において、何らかの問題が発生しない、という保証は、全くない。

その制作、作業、コンピューターの作動の結果、その人や、その人が所属している組織、その人が使用した様々な機器、インフラストラクチャー等の、身の上にどのような事が起ころうとも、私は一切、責任を負わない。

このプログラムは、Python(パイソン) 言語を使って、記述されている。

----------
2 どのようなものを作ったのか

[Fig 1](下記)の、上部にある画像から、
[Fig 1]下部にある画像を、作成した。

画像の下部で、[水面に映る月]を表現したかった、デザインに習熟している人であれば、もっと、巧みに表現できるのかもしれない。

Fig 1

上記の画像が作成されていった手順は、下図に示すようなものである。

Fig 2

(1) 作製の行程は、画像1 からのスタートとなる。
(2) 画像1 から 画像2 が、トリミングして作られた。これは、最終段階での生産物(画像9)の、上半部分を、形成することに使用されることになるだろう。
(3) 画像1 から 画像3 が、トリミングして作られた、上下反転させながら。これは、最終段階での生産物(画像9)の、下半部分を、形成することに使用されることになるだろう。
(4) 画像3 と 画像4 をミックスして、画像5 が、作られた。[水面からの反映]であることを表すために、このように、画像のミックスが、行われた。
(5) 画像2 と 画像5 より、画像6 が、作られた。
(6) 画像6 と 画像7(パターン画像として使用)、画像8 (カバー用の画像として使用)より、画像9 が、作られた。

----------
3 構成

このモジュール群は、下記のモジュールより、構成されている。

 [ TestMakeImageDataOfMizukagami ]
 [ MakeImageDataOfMizukagami ]

以降に、これらのモジュールの内容を、記す。

これらのモジュールは、必要に応じて、下記に解説されているモジュールを、使用している。

[画像をトリミングする、画像の反転指定も可] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

[画像を、別の画像に、重ね塗りする・機能強化 版] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

[[画像処理, OpenCV2 使用] を 行う, 機能追加版, 多角形(内部ぬりつぶし)描画機能を追加] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[エラー処理] を 行う

----------

----------
4 [ TestMakeImageDataOfMizukagam ]

ファイル名 [ TestMakeImageDataOfMizukagam.py ]

----------


import  ImageDataTwoDimensionHandlingV3
import  MakeImageDataOfMizukagami

module_name = "TestMakeImageDataOfMizukagami"

abs_path_of_directory_Top =  "E:ForPython/ForTest/Test_D/"

#------------------------------
abs_path_of_ImageDataFile_UpperSide_half  \
    = abs_path_of_directory_Top + "Moon_1200_600.png"
abs_path_of_ImageDataFile_WaterRefliction  \
    = abs_path_of_directory_Top + "Water_1000_500.png"
abs_path_of_ImageDataFile_for_covering   \
    = abs_path_of_directory_Top + "Pond_1000_1000.png"
abs_path_of_ImageDataFile_Pattern     \
    = abs_path_of_directory_Top + "Pond_Pattern_1000_1000.png"
abs_path_of_ImageDataFile_Base     \
    = abs_path_of_directory_Top + "Base_1000_1000.png"

list_directed_x_and_y_on_PatternImageData = [ 10 , 480 ]

list_setting_location_on_BaseImageData = [ 0 , 500 ]
list_triming_From_To_xy = [ [ 100 , 50 ] , [ 1099 , 549 ] ]

 #------------------------------------------------
ins_ImageDataTwoDimensionHandlingV3 = \
              MakeImageDataOfMizukagami  \
                    .make_ImageDatas  (   \
                             abs_path_of_ImageDataFile_UpperSide_half
                          ,   list_triming_From_To_xy

                          ,  abs_path_of_ImageDataFile_WaterRefliction
                          ,  abs_path_of_ImageDataFile_for_covering
                          ,  abs_path_of_ImageDataFile_Pattern
                          ,  abs_path_of_ImageDataFile_Base

                          ,  list_directed_x_and_y_on_PatternImageData
                          ,  list_setting_location_on_BaseImageData
                                                   )
ins_ImageDataTwoDimensionHandlingV3    \
    .write_loaded_image_data_to_directed_path (   \
                          module_name
                        ,  "_____"
                        , ( abs_path_of_directory_Top  \
                              + "Output.png"  )
                                                                      )

#======================================

----------

----------
5 [ MakeImageDataOfMizukagami ]

ファイル名 [ MakeImageDataOfMizukagami.py ]

----------

----------


import  MakeTrimedImageData
import  CopyAndInsertImageDataV3
import  ImageDataTwoDimensionHandlingV3

#=====================================
# MakeImageDataOfMizukagami
#=====================================

global_module_name = "MakeImageDataOfMizukagami"
global_abs_path_of_directory_Top =  "E:ForPython/ForTest/Test_D/"

#----------------------------------------------
def  make_ImageDatas  (  \
                             arg_abs_path_of_ImageDataFile_UpperSide_half
                         ,   arg_list_triming_From_To_xy

                          ,  arg_abs_path_of_ImageDataFile_WaterReflection
                          ,  arg_abs_path_of_ImageDataFile_for_covering
                          ,  arg_abs_path_of_ImageDataFile_Pattern
                          ,  arg_abs_path_of_ImageDataFile_Base

                          ,  arg_list_directed_x_and_y_on_PatternImageData
                          ,  arg_list_setting_location_on_BaseImageData
                                    ) :

    function_name = "make_ImageDatas"

    global  global_module_name
    global  global_abs_path_of_directory_Top

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    ins_ImageDataTwoDimensionHandlingV3_for_make_UpperSide_half  \
         = ImageDataTwoDimensionHandlingV3  \
                 .ImageDataTwoDimensionHandlingV3 (  \
                       global_module_name
                     , function_name
                                                                          )
    ins_ImageDataTwoDimensionHandlingV3_for_make_UpperSide_half  \
        .load_image_data ( \
                       global_module_name
                     , function_name
                     , arg_abs_path_of_ImageDataFile_UpperSide_half
                                     )
        #------------------------------
    ins_ImageDataTwoDimensionHandlingV3_WaterReflection  \
         = ImageDataTwoDimensionHandlingV3  \
                 .ImageDataTwoDimensionHandlingV3 (  \
                       global_module_name
                     , function_name
                                                                          )
    ins_ImageDataTwoDimensionHandlingV3_WaterReflection  \
        .load_image_data ( \
                       global_module_name
                     , function_name
                     , arg_abs_path_of_ImageDataFile_WaterReflection
                                     )
        #------------------------------
    ins_ImageDataTwoDimensionHandlingV3_for_covering  \
         = ImageDataTwoDimensionHandlingV3  \
                 .ImageDataTwoDimensionHandlingV3 (  \
                       global_module_name
                     , function_name
                                                                         )
    ins_ImageDataTwoDimensionHandlingV3_for_covering  \
        .load_image_data ( \
                       global_module_name
                     , function_name
                     , arg_abs_path_of_ImageDataFile_for_covering
                                    )
        #------------------------------
    ins_ImageDataTwoDimensionHandlingV3_Pattern  \
         = ImageDataTwoDimensionHandlingV3  \
                 .ImageDataTwoDimensionHandlingV3 (  \
                       global_module_name
                     , function_name
                                                                          )
    ins_ImageDataTwoDimensionHandlingV3_Pattern  \
        .load_image_data ( \
                       global_module_name
                     , function_name
                     , arg_abs_path_of_ImageDataFile_Pattern
                                   )
        #------------------------------
    ins_ImageDataTwoDimensionHandlingV3_Base  \
         = ImageDataTwoDimensionHandlingV3  \
                 .ImageDataTwoDimensionHandlingV3 (  \
                       global_module_name
                     , function_name
                                                                         )
    ins_ImageDataTwoDimensionHandlingV3_Base  \
        .load_image_data ( \
                       global_module_name
                     , function_name
                     , arg_abs_path_of_ImageDataFile_Base
                                   )
        #------------------------------
              # make ImageData of [ UpperSide_half ]
                  # no flip
    ins_ImageDataTwoDimensionHandlingV3_UpperSide_half = \
          MakeTrimedImageData   \
                  .make_ins_ImageDataTwoDimensionHandlingV3_trimed  ( \
                          ins_ImageDataTwoDimensionHandlingV3_for_make_UpperSide_half
                       ,  arg_list_triming_From_To_xy
                       ,  "N"    #do_flip
                       ,  " "     #flipping_direction
                                                                                                     )
    ins_ImageDataTwoDimensionHandlingV3_UpperSide_half   \
           .write_loaded_image_data_to_directed_path (   \
                    global_module_name
                  , function_name
                  , ( global_abs_path_of_directory_Top + "Output_UpperSide_half.png" )
                                                                             )
           #------------------------------------------
              # make trimed  ImageData
              #   , flip [Top _ Bottom ] ( for make mirror reflection on water surface )
    ins_ImageDataTwoDimensionHandlingV3_LowerSide_half = \
          MakeTrimedImageData   \
                  .make_ins_ImageDataTwoDimensionHandlingV3_trimed  ( \
                          ins_ImageDataTwoDimensionHandlingV3_for_make_UpperSide_half
                       ,  arg_list_triming_From_To_xy
                       ,  "Y"    #do_flip
                       ,  "T"     #flipping_direction
                                                                                                     )
    ins_ImageDataTwoDimensionHandlingV3_LowerSide_half   \
           .write_loaded_image_data_to_directed_path (   \
                    global_module_name
                  , function_name
                  , ( global_abs_path_of_directory_Top + "Output_LowerSide_half.png" )
                                                                             )
           #------------------------------------------------
              # make WaterReflection colored ImageData
    ins_ImageDataTwoDimensionHandlingV3_LowerSide_half_WaterReflection = \
          make_ImageData_WaterReflection_colored (
                          ins_ImageDataTwoDimensionHandlingV3_LowerSide_half
                       ,  ins_ImageDataTwoDimensionHandlingV3_WaterReflection
                                                                          )
    ins_ImageDataTwoDimensionHandlingV3_LowerSide_half_WaterReflection   \
           .write_loaded_image_data_to_directed_path (   \
                    global_module_name
                  , function_name
                  , ( global_abs_path_of_directory_Top \
                          + "Output_LowerSide_half_WaterReflection.png" )
                                                                             )
              #---------------------------------------------------------
              # make ImageData ( connected ,  UpperSide and LowerSide )
    ins_ImageDataTwoDimensionHandlingV3_connected = \
          make_connected_ImageData (   \
                     ins_ImageDataTwoDimensionHandlingV3_UpperSide_half
                   , ins_ImageDataTwoDimensionHandlingV3_LowerSide_half_WaterReflection
                   , ins_ImageDataTwoDimensionHandlingV3_Base
                   , arg_list_setting_location_on_BaseImageData
                                                      )
    ins_ImageDataTwoDimensionHandlingV3_connected   \
           .write_loaded_image_data_to_directed_path (   \
                    global_module_name
                  , function_name
                  , ( global_abs_path_of_directory_Top + "Output_connected.png" )
                                                                             )
              #---------------------------------
              # make completed  ImageData
                   # covered by pond ImageData
    ins_ImageDataTwoDimensionHandlingV3_completed = \
          make_ImageData_covered (   \
                        ins_ImageDataTwoDimensionHandlingV3_connected
                     ,  ins_ImageDataTwoDimensionHandlingV3_for_covering
                     ,  ins_ImageDataTwoDimensionHandlingV3_Pattern
                     ,  arg_list_directed_x_and_y_on_PatternImageData
                                                  )
    ins_ImageDataTwoDimensionHandlingV3_completed   \
           .write_loaded_image_data_to_directed_path (   \
                    global_module_name
                  , function_name
                  , ( global_abs_path_of_directory_Top + "Output_completed.png" )
                                                                             )
              #---------------------------------------------------------
    return  ins_ImageDataTwoDimensionHandlingV3_completed

#================================================
def  make_adding_ImageData (   \
                            arg_ins_ImageDataTwoDimensionHandlingV3_1
                          , arg_ins_ImageDataTwoDimensionHandlingV3_2
                                             )  :

    function_name = "make_adding_ImageData"

    global  global_module_name

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    ins_CopyAndInsertImageDataV3 =  \
              CopyAndInsertImageDataV3                   \
                    .CopyAndInsertImageDataV3 ( )
                    #---------------------------------
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 0 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 0    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_1 )
                    #---------------------------------
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 2 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 2    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_2 )
                    #---------------------------------
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 3 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 3    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_2 )
                                        #---------------------------------------
    width_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_1  \
                   .get_width_of_ImageData (  )
    height_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_1  \
                   .get_height_of_ImageData (  )
    list_CopySource_From_and_To_xy = \
                 [                                                                                   \
                        [ 0 , 0 ]                                                                  \
                 ,                                                                                   \
                        [                                                                            \
                          ( width_of_CopySource_ImageData - 1 )                \
                     ,    ( height_of_CopySource_ImageData - 1 )               \
                        ]                                                                            \
                 ]
                #----------------------
    list_color_copying = [ [ 0 , 0 , 0 ] , [ 253 , 253 , 253 ] ]
    scale_rate_CopySource_to_InsertedSide = 1.0
    color_rate_CopySource_to_InsertedSide = 1.0
               #----------------------------------------
    ins_CopyAndInsertImageDataV3    \
          .copy_and_insert_ImageData (      \
                           "N"   #arg_use_or_not_PatternImageData
                        ,   [ 0 , 0 ]  # not used, arg_list_directed_x_and_y_on_PatternImageData

                         ,  list_color_copying
                         ,  list_CopySource_From_and_To_xy
                         ,  scale_rate_CopySource_to_InsertedSide
                         ,  color_rate_CopySource_to_InsertedSide

                         ,  [ 100 , 100 ]  # arg_list_BasicLocation_x_and_y_on_CopySource_ImageData
                         ,  [ 0 , 0 ]  #not used, arg_list_BasicLocation_x_and_y_on_Pattern_ImageData
                         ,  [ 105 , 105 ]  # arg_list_BasicLocation_x_and_y_on_InsertedSide_ImageData

                         ,  "N"   #arg_do_rotation
                         ,  0     # not use, arg_rotation_degree_of_inserting_on_InsertedSide_Source
                                                      )

    ins_ImageDataTwoDimensionHandlingV3_return  \
          = ins_CopyAndInsertImageDataV3    \
                     .get_ImageData ( 3 )

    print ( "==================================" )
    print ( "Exit from , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    return   ins_ImageDataTwoDimensionHandlingV3_return

    #-----------------------------------------------------------------
def  make_ImageData_WaterReflection_colored  (    \
                          arg_ins_ImageDataTwoDimensionHandlingV3_Source
                       ,  arg_ins_ImageDataTwoDimensionHandlingV3_WaterReflection
                                                       ) :

    function_name = "make_ImageData_WaterReflection_colored"

    global  global_module_name

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    ins_CopyAndInsertImageDataV3 =  \
              CopyAndInsertImageDataV3                   \
                    .CopyAndInsertImageDataV3 ( )
             #--------------------------------------------
                    #CopySource ImageData = WaterReflection
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 0 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 0    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_WaterReflection )
                    #InsertedSide ImageData = Source
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 2 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 2    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_Source )

    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 3 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 3    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_Source )
                                        #---------------------------------------
    width_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_WaterReflection  \
                   .get_width_of_ImageData (  )
    height_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_WaterReflection  \
                   .get_height_of_ImageData (  )
    list_CopySource_From_and_To_xy = \
                 [                                                                                   \
                        [ 0 , 0 ]                                                                  \
                 ,                                                                                   \
                        [                                                                            \
                          ( width_of_CopySource_ImageData - 1 )                \
                     ,    ( height_of_CopySource_ImageData - 1 )               \
                        ]                                                                            \
                 ]
                #----------------------
    list_color_copying = [ [ 0 , 0 , 0 ] , [ 253 , 253 , 253 ] ]
    scale_rate_CopySource_to_InsertedSide = 1.0
                #***********************************
    color_rate_CopySource_to_InsertedSide = 0.5
                #***********************************

               #----------------------------------------
    ins_CopyAndInsertImageDataV3    \
          .copy_and_insert_ImageData (      \
                           "N"   #arg_use_or_not_PatternImageData
                        ,   [ 0 , 0 ]  # not used, arg_list_directed_x_and_y_on_PatternImageData

                         ,  list_color_copying
                         ,  list_CopySource_From_and_To_xy
                         ,  scale_rate_CopySource_to_InsertedSide
                         ,  color_rate_CopySource_to_InsertedSide

                         ,  [ 100 , 100 ]  # arg_list_BasicLocation_x_and_y_on_CopySource_ImageData
                         ,  [ 0 , 0 ]  #not used, arg_list_BasicLocation_x_and_y_on_Pattern_ImageData
                         ,  [ 100 , 100 ]  # arg_list_BasicLocation_x_and_y_on_InsertedSide_ImageData

                         ,  "N"   #arg_do_rotation
                         ,  0     # not use, arg_rotation_degree_of_inserting_on_InsertedSide_Source
                                                      )

    ins_ImageDataTwoDimensionHandlingV3_return  \
          = ins_CopyAndInsertImageDataV3    \
                     .get_ImageData ( 3 )

    print ( "==================================" )
    print ( "Exit from , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    return   ins_ImageDataTwoDimensionHandlingV3_return

    #----------------------------------------------
def  make_ImageData_covered (   \
                        arg_ins_ImageDataTwoDimensionHandlingV3_covered
                     ,  arg_ins_ImageDataTwoDimensionHandlingV3_covering
                     ,  arg_ins_ImageDataTwoDimensionHandlingV3_Pattern
                     ,  arg_list_directed_x_and_y_on_PatternImageData
                            ) :

    function_name = "make_ImageData_covered"

    global  global_module_name

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    ins_CopyAndInsertImageDataV3 =  \
              CopyAndInsertImageDataV3                   \
                    .CopyAndInsertImageDataV3 ( )
             #--------------------------------------------
                    #CopySource ImageData
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 0 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 0    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_covering )
                     #Pattern
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 1 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 1    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_Pattern )
                    #InsertedSide ImageData
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 2 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 2    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_covered )

    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 3 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 3    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_covered )
                                        #---------------------------------------
    width_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_covering  \
                   .get_width_of_ImageData (  )
    height_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_covering  \
                   .get_height_of_ImageData (  )
    list_CopySource_From_and_To_xy = \
                 [                                                                                   \
                        [ 0 , 0 ]                                                                  \
                 ,                                                                                   \
                        [                                                                            \
                          ( width_of_CopySource_ImageData - 1 )                \
                     ,    ( height_of_CopySource_ImageData - 1 )               \
                        ]                                                                            \
                 ]
                #----------------------
    list_color_copying = [ [ 0 , 0 , 0 ] , [ 253 , 253 , 253 ] ]
    scale_rate_CopySource_to_InsertedSide = 1.0
    color_rate_CopySource_to_InsertedSide = 1.0
               #----------------------------------------
    ins_CopyAndInsertImageDataV3    \
          .copy_and_insert_ImageData (      \
                           "Y"   #arg_use_or_not_PatternImageData
                         ,  arg_list_directed_x_and_y_on_PatternImageData

                         ,  list_color_copying
                         ,  list_CopySource_From_and_To_xy
                         ,  scale_rate_CopySource_to_InsertedSide
                         ,  color_rate_CopySource_to_InsertedSide

                         ,  [ 100 , 100 ]  # arg_list_BasicLocation_x_and_y_on_CopySource_ImageData
                         ,  [ 100 , 100 ]  # arg_list_BasicLocation_x_and_y_on_Pattern_ImageData
                         ,  [ 100 , 100 ]  # arg_list_BasicLocation_x_and_y_on_InsertedSide_ImageData

                         ,  "N"   #arg_do_rotation
                         ,  0     # not use, arg_rotation_degree_of_inserting_on_InsertedSide_Source
                                                      )
    ins_ImageDataTwoDimensionHandlingV3_return  \
          = ins_CopyAndInsertImageDataV3    \
                     .get_ImageData ( 3 )

    print ( "==================================" )
    print ( "Exit from , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    return   ins_ImageDataTwoDimensionHandlingV3_return

    #----------------------------------------------
def   make_connected_ImageData  (   \
                     arg_ins_ImageDataTwoDimensionHandlingV3_1
                   , arg_ins_ImageDataTwoDimensionHandlingV3_2
                   , arg_ins_ImageDataTwoDimensionHandlingV3_Base
                   , arg_setting_location_on_BaseImageData
                                )  :

    function_name = "make_connected_ImageData"

    global  global_module_name

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                      + " , function = " + function_name )
    print ( "==================================" )

    ins_CopyAndInsertImageDataV3 =  \
              CopyAndInsertImageDataV3                   \
                    .CopyAndInsertImageDataV3 ( )
         #===================================
         # set ImageData 1, on Base
         #===================================
                    #CopySource ImageData
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 0 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 0    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_1 )

                    #InsertedSide ImageData
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 2 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 2    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_Base )

    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 3 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 3    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_Base )
                                        #---------------------------------------
    width_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_1  \
                   .get_width_of_ImageData (  )
    height_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_1  \
                   .get_height_of_ImageData (  )
    list_CopySource_From_and_To_xy_1 = \
                 [                                                                                   \
                        [ 0 , 0 ]                                                                  \
                 ,                                                                                   \
                        [                                                                            \
                          ( width_of_CopySource_ImageData - 1 )                \
                     ,    ( height_of_CopySource_ImageData - 1 )               \
                        ]                                                                            \
                 ]
                #----------------------

    list_color_copying = [ [ 0 , 0 , 0 ] , [ 253 , 253 , 253 ] ]
    scale_rate_CopySource_to_InsertedSide = 1.0
    color_rate_CopySource_to_InsertedSide = 1.0
               #----------------------------------------
    ins_CopyAndInsertImageDataV3    \
          .copy_and_insert_ImageData (      \
                           "N"   #arg_use_or_not_PatternImageData
                         ,  [ 0 , 0 ]  # not used , arg_list_directed_x_and_y_on_PatternImageData

                         ,  list_color_copying
                         ,  list_CopySource_From_and_To_xy_1
                         ,  scale_rate_CopySource_to_InsertedSide
                         ,  color_rate_CopySource_to_InsertedSide

                         ,  [ 0 , 0 ]  # arg_list_BasicLocation_x_and_y_on_CopySource_ImageData
                         ,  [ 0 , 0 ]  #not used, arg_list_BasicLocation_x_and_y_on_Pattern_ImageData

                         ,  [  arg_setting_location_on_BaseImageData [ 0 ]    \
                                ,                                                                      \
                                arg_setting_location_on_BaseImageData [ 1 ]    \
                            ]
                               # arg_list_BasicLocation_x_and_y_on_InsertedSide_ImageData

                         ,  "N"   #arg_do_rotation
                         ,  0     # not use, arg_rotation_degree_of_inserting_on_InsertedSide_Source
                                                      )

         #===================================
         # set ImageData 2, on Base
         #===================================
                    #CopySource ImageData
    ins_CopyAndInsertImageDataV3   \
                    .construct_ImageData ( 0 )
    ins_CopyAndInsertImageDataV3   \
                    .set_ImageData ( 0    \
                              , arg_ins_ImageDataTwoDimensionHandlingV3_2 )
                      #---------------------------------------
    width_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_2  \
                   .get_width_of_ImageData (  )
    height_of_CopySource_ImageData = \
            arg_ins_ImageDataTwoDimensionHandlingV3_2  \
                   .get_height_of_ImageData (  )
    list_CopySource_From_and_To_xy_2 = \
                 [                                                                                   \
                        [ 0 , 0 ]                                                                  \
                 ,                                                                                   \
                        [                                                                            \
                          ( width_of_CopySource_ImageData - 1 )                \
                     ,    ( height_of_CopySource_ImageData - 1 )               \
                        ]                                                                            \
                 ]
                #----------------------
    list_color_copying = [ [ 0 , 0 , 0 ] , [ 253 , 253 , 253 ] ]
    scale_rate_CopySource_to_InsertedSide = 1.0
    color_rate_CopySource_to_InsertedSide = 1.0
               #----------------------------------------
    ins_CopyAndInsertImageDataV3    \
          .copy_and_insert_ImageData (      \
                           "N"   #arg_use_or_not_PatternImageData
                         ,  [ 0 , 0 ]  # not used , arg_list_directed_x_and_y_on_PatternImageData

                         ,  list_color_copying
                         ,  list_CopySource_From_and_To_xy_2
                         ,  scale_rate_CopySource_to_InsertedSide
                         ,  color_rate_CopySource_to_InsertedSide

                         ,  [ 0 , 0 ]  # arg_list_BasicLocation_x_and_y_on_CopySource_ImageData
                         ,  [ 0 , 0 ]  #not used, arg_list_BasicLocation_x_and_y_on_Pattern_ImageData
                         ,  [ 0 , 0 ]  # arg_list_BasicLocation_x_and_y_on_InsertedSide_ImageData

                         ,  "N"   #arg_do_rotation
                         ,  0     # not use, arg_rotation_degree_of_inserting_on_InsertedSide_Source
                                                      )
             #==============================
    ins_ImageDataTwoDimensionHandlingV3_return  \
          = ins_CopyAndInsertImageDataV3    \
                     .get_ImageData ( 3 )

    return  ins_ImageDataTwoDimensionHandlingV3_return

#============================================

----------

Python(パイソン) プログラム作ってみた インデックス へ


この記事が気に入ったらサポートをしてみませんか?