rendered paste bodyalias 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
}