All pastes #576581 Raw Edit

Someone

public text v1 · immutable
·published 2007-06-19 15:17 UTC
rendered paste body
alias pic { dialog -md pic pic }
dialog Pic {
  title "Picture"
  size -1 -1 57 22
  option dbu
  button "Open Pic", 1, 9 4 37 12
}
on *:dialog:pic:sclick:1:{
  %all.pic.filepath = $sfile(*.jpg)
  %all.width = $pic(%all.pic.filepath).width
  %all.height  = $pic(%all.pic.filepath).height
  if (%all.height > 40 ) { %all.step = 2 }
  else { %all.step = 1 }
  if (%all.width > 80 ) { echo -as Sorry please resize the picture 80 width by 40 in height  or under. | AsciShutdown | Goto #stop }
  window -apod +dL @smoon 30 450 %all.width %all.height
  drawfill @smoon 1 1 %all.width %all.height
  window -apod +dL  @dot 30  650 %all.width %all.height
  window -em @ASCI
  write -c  $+(",%all.pic.filepath $+ .txt,") 
  drawpic -ms @smoon -1 -1 %all.pic.w %all.pic.h $+(",%all.pic.filepath,") 
  %all.asci.art = 
  %all.x = 0
  %all.y =  0
  var %all.count 1
  getpic
}
alias getpic { 
  while ( %all.x <= %all.width ) { if ( %all.width <= 40 )  { %all.art = %all.art $+ $chr(3) $+ %all.c $+ $chr(44) $+ %all.c $+ EE }
    elseif ( %all.width > 40 )  { %all.art = %all.art $+ $chr(3) $+ %all.c $+ $chr(44) $+ %all.c $+ F }
    dith    
    %all.x = %all.x + 1
    if ( %all.x > %all.width ) { 
      %all.y = %all.y + %all.step 
      %all.x = 0
      if (%all.count >= 40 ) { echo @ASCI Sorry but 40 lines in Height should be the limit | halt }
      aline 1 @ASCI %all.art 
      write  -l %all.count  $+(",%all.pic.filepath $+ .txt,") %all.art
      inc %all.count
      %all.art = 
      if ( %all.y >= %all.height ) { break } 
    }
    drawdot -r @dot  $getdot(@smoon,%all.x,%all.y) 1 %all.x %all.y
  }
}
alias dith { 
  %all.color = $rgb($getdot(@smoon,%all.x,%all.y))
  %all.n = $numtok(%all.color,44) 
  while (%all.n) {
    set %all.a [ $+ [ %all.n ] ] $gettok(%all.color,%all.n,44) 
    if ( %all.a [ $+ [ %all.n ] ] <= 85 ) {
      set %all.a [ $+ [ %all.n ] ] 0 
    }
    if  ( ( %all.a [ $+ [ %all.n ] ] >= 85 ) &&  ( %all.a [ $+ [ %all.n ] ] <= 170 ) ) { 
      set %all.a [ $+ [ %all.n ] ] 128
    }   
    if ( %all.a [ $+ [ %all.n ] ] >= 170 ) { 
      set %all.a [ $+ [ %all.n ] ] 255
    }   
    dec %all.n 
    %all.c = %all.a1 %all.a2 %all.a3
    if ( %all.c == 0 0 0 )       { %all.c = 1  }
    if ( %all.c == 255 0 0 )     { %all.c = 4  }
    if ( %all.c == 0 255 0 )     { %all.c = 9  }
    if ( %all.c == 0 0 255 )     { %all.c = 12 }
    if ( %all.c == 255 255 0 )   { %all.c = 8  }
    if ( %all.c == 0 255 255 )   { %all.c = 11 }
    if ( %all.c == 255 0 255 )   { %all.c = 13 }
    if ( %all.c == 255 255 255 ) { %all.c = 0 }
    if ( %all.c == 128 0 0 )     { %all.c = 5  }
    if ( %all.c == 0 128 0 )     { %all.c = 3  }
    if ( %all.c == 0 0 128 )     { %all.c = 2  }
    if ( %all.c == 128 0 128 )   { %all.c = 6  }
    if ( %all.c == 128 128 0 )   { %all.c = 10 }
    if ( %all.c == 0 128 128 )   { %all.c = 10 }
    if ( %all.c == 128 128 128 ) { %all.c = 14 }
    if ( %all.c == 128 255 255 ) { %all.c = 11 }
    if ( %all.c == 128 255 128 ) { %all.c = 9 }
    if ( %all.c == 255 128 255 ) { %all.c = 13 }
    if ( %all.c == 255 255 128 ) { %all.c = 8  }
    if ( %all.c == 128 128 255 ) { %all.c = 12 }
    if ( %all.c == 255 128 128 ) { %all.c = 7  }
    if ( %all.c == 128 255 0 )   { %all.c = 9  }
    if ( %all.c == 128 0 255 )   { %all.c = 12 }
    if ( %all.c == 0 128 255 )   { %all.c = 12 }
    if ( %all.c == 255 128 0 )   { %all.c = 7 }
    if ( %all.c == 255 0 128 )   { %all.c = 4 }
    if ( %all.c == 0 255 128 )   { %all.c = 9 }
  }
}
menu @smoon { 
  rclick: { AsciShutdown }
  sclick: { AsciShutdown  }
}
menu @dot { 
  rclick: { AsciShutdown }
  sclick: { AsciShutdown }
}
on *:CLOSE:*:{ if ($target == @ASCI ) { asciShutdown } }

alias AsciShutdown { 
  window -c @dot
  window -c @smoon
  window -c @ASCI
  unset %all.*
  halt
}


menu channel {
  Convert to ASCII
  .Find bmp or jpg (80w x 80h) to convert:pic
  ..Show ascii TEXT after converting:play  $+(",$$sfile(%all.pic.filepath $+ .txt,Pick a Text File. , Play File ),") 4000 | play 
}