• age of a tree source code:

    From Conor Williams@21:1/5 to All on Mon Oct 11 18:55:49 2021
    ############ ############ ############
    # conor.williams@gmail.com
    # tcl script to tell age of a tree #http://solvedissues.000webhostapp.com/pithsearch.png
    ############ ############ ############

    proc rest123 {filename} {
    set img [image create photo img -file $filename]

    catch {
    canvas .con
    .con create image 0 0 -anchor nw -image $img
    pack .con
    update
    }

    set myvar 1
    wm title . "age of tree"
    catch {destroy .but}
    ######## ######### ########
    # Main Procedural Loop
    ######## ######### ########
    set flag 0
    set whiteFound 0
    for {set i 100} {$i < 400} {incr i 4} {
    for {set j 100} {$j < 350} {incr j 3} {
    set color [$img get $i $j]
    #set color 1
    set data [$img get $i $j]

    set red1 [lindex $data 0]
    set green2 [lindex $data 1]
    set blue3 [lindex $data 2]
    # puts "$red1 $green2 $blue3"

    if {$red1 == 255 && $green2 == 255 && $blue3 == 255} {
    # puts white
    } elseif {$red1 == 0 && $green2 == 0 && $blue3 == 0} {
    # puts black
    } elseif {$red1 == 217 && $green2 == 217 && $blue3 == 217} {
    # puts grey
    } elseif {$red1 == 253 && $green2 == 33 && $blue3 == 13} {
    set age 0
    puts "red pith located @ $i -- $j"

    for {set jv $j} {$jv > 9} {incr jv -1} {
    #puts "$i $jv"
    set data2 [$img get $i $jv]

    set red1h [lindex $data2 0]
    set green2h [lindex $data2 1]
    set blue3h [lindex $data2 2]
    if {$red1h == 253 && $green2h == 33 && $blue3h == 13} {
    #puts "red"
    } elseif {$red1h == 255 && $green2h == 255 && $blue3h == 255} {
    #puts white
    set whiteFound 1
    } else {
    puts "$red1h $green2h $blue3h other : $i $jv"
    if {$whiteFound == 1} {
    incr age
    set whiteFound 0
    }
    }
    set flag 1
    }
    } else {
    # puts "$red1 $green2 $blue3 other"
    }
    if {$flag == 1} {break}
    }
    if {$flag == 1} {break}
    }
    puts "age of the tree seen on screen is: $age"
    update
    after 3000
    button .but
    .but configure -text $age -background red
    pack .but
    update
    }

    frame .frame1
    pack .frame1 -side top
    label .frame1.filename -text "png filename:"
    pack .frame1.filename -side left
    text .frame1.text2 -height 1 -width 30
    pack .frame1.text2 -side right
    #KeyPress is the event not the binding
    #.frame1.text2 tag bind KeyPress {rest123 [.frame1.text2 get -displaychars 1.0 1.100]}
    button .but10
    .but10 configure -text "press me" -command {rest123 [.frame1.text2 get -displaychars 1.0 1.100]}
    pack .but10
    update
    #########
    #EOF
    ##########

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)