[Question]
  [
**Closed**. This question needs to be more [focused](/help/closed-questions). It is not currently accepting answers.
 
 
---
**Want to improve this question?** Update the question so it focuses on one problem only by [editing this post](/posts/20209/edit).
Closed 7 years ago.
[Improve this question](/posts/20209/edit) 
Your goal is to write the shortest program that outputs "Hello-World!" as ASCII art.
Rules : 
* It must be human readable, I don't care about it's size (cols/rows)
* Output must contain only spaces (" "), sharps ("#") and newlines
* The output must work with a monospaced font (but the letters doesn't necessary use a monospaced font)
* In the result, each character must be separated from each other by at least one space
Please add a title with the language and the number of bytes in your code.
  
[Answer]
# JavaScript, 178 bytes
```
c=document.createElement("canvas").getContext("2d");c.fillText("Hello-World!",0,7);d=c.getImageData(1,0,56,7).data;s="";for(i=3;i<1568;i+=4){s+=d[i]?"#":" ";s+=(i+1)%224?"":"\n"}
```
That works in Firefox 27 Scratchpad.
```
#   #        #  #          #   #   #          #     #  #
#   #        #  #          #  # #  #          #     #  #
#   #   ##   #  #   ##      # # # #   ##   ## #   ###  #
#####  #  #  #  #  #  #     # # # #  #  #  #  #  #  #  #
#   #  ####  #  #  #  # ##  # # # #  #  #  #  #  #  #  #
#   #  #     #  #  #  #     # # # #  #  #  #  #  #  #   
#   #   ###  #  #   ##       #   #    ##   #  #   ###  #
```
[Answer]
# Mathematica ~~101 99~~ 98
This rasterizes the expression, obtains the binary image data, converts each 1 to "#", each 0 to "" (empty space) and displays output in a 12 by 130 character grid.
```
GraphicsGrid[ImageData@ImageResize[Binarize@Rasterize@Style["Hello-World!",99],130] 
  /.{1→"",0→"#"}]
```
![hello](https://i.stack.imgur.com/JNhu3.png)
One character economized thanks to Jonathan Van Matre.
[Answer]
## Delphi 85 bytes
```
var s:tstringlist;begin s:=tstringlist.Create;s.LoadFromFile('\a');Write(s.Text);end.
```
I know, its not the prettiest solution but there was no rule that said you couldnt use external resources.  
Result:
![Result](https://i.stack.imgur.com/JgkGd.png)
[Answer]
I absolutely enjoyed this one
# Perl, 126 116 114 102 98  87 (69) chars (ascii only & no external fonts)
## As of now shortest ascii solution which doesn't use any external fonts.
Well, I wanted to present some elegant solution but @Ilmari Karonen challenged me with `unpack`... shouldn't have done that :-)
Well, this 92 88 **69 chars** code generates the uglish unreadable output identical to
@Ilmari Karonen's:
```
say map{y/01/ #/r}unpack"((b6)7a)*",'eT@j@DE
UUBjdeE
wTujjTA
eUBTddE'
```
More elegant variant without unpack (88 chars):
```
map{print$"x$_,$/x/4/,"#"x!/7/}7&ord,7&ord>>3for'HRyYOKLIIjIRHBa@AJIAIIIJaQHQNSRH'=~/./g
```
But I think such |.|e||.-|||.,d! thing is nothing which resembles Hello-World! and shouldn't be allowed, so real solution goes here - unpack variant, **87 chars**:
```
say map{y/01/ #/r}unpack"((b6)9a)*",'E`D@HB@Hd
EcD@HB@Hd
ggDsIbaIf
e`dDhRRHE
ECICPaQPf'
```
Output:
![enter image description here](https://i.stack.imgur.com/d57JO.png)
More elegant variant at 98 chars:
```
map{print$"x$_,$/x/1/,"#"x!/7/}7&ord,7&ord>>3for'PW{nw^QD[w}vK@X@PcP@jCDjXQk[rRRbSQD\CWbXeX'=~/./g
```
Output:
![enter image description here](https://i.stack.imgur.com/wGs2a.png)
Older solution (114 chars), different type of coding:
```
print'#'x(3&ord),$"x($:=15&ord>>2),$/x!$:for'EmM}U}]MBEQSM}U}]MBOFNMQOKUMSKUOBEM]MMM]IIIMIUQIAEQWMMgFROYQOB'=~/./g
```
Output:
![enter image description here](https://i.stack.imgur.com/8uhp3.png)
[Answer]
# Perl 5, 54 bytes / 71 printable ASCII chars
> 
> **Note:** This is the second version of this answer. For the original 64-byte / 95-char version using PHP and gzinflate(), see [the history of this answer](https://codegolf.stackexchange.com/posts/20246/revisions).
> 
> 
> 
Here's the 71-char printable ASCII version:
```
y/01/ #/,say for unpack'(B40)4',unpack u,'4I*`1`(JJI!$FFNRJU52HIJ0*))H'
```
The 54-byte version contains non-printable characters, so I'm providing it as a hex dump. On Unixish systems, you can use `xxd -r` to turn the hex dump back into an executable Perl script:
```
0000000: 792f 3031 2f20 232f 2c73 6179 2066 6f72  y/01/ #/,say for
0000010: 2075 6e70 6163 6b27 2842 3430 2934 272c   unpack'(B40)4',
0000020: 27a4 a011 008a aaa4 1126 9aec aad5 54a8  '........&....T.
0000030: a6a4 0a24 9a27                           ...$.'
```
Both need to be run with `perl -M5.010` to enable the Perl 5.10+ `say` feature. They will produce the following output:
![Screenshot of "Hello-World!" ASCII art](https://i.stack.imgur.com/ETnXR.png)
(Shown as a screenshot, because the huge line-height on SE makes ASCII art ugly and hard to read. The lower case "e" is kind of awkward, but I believe this qualifies as readable, if only barely so.)
---
**Ps.** If the output of the solution above feels too minimalistic for you, here's a **92-character** variant that produces output similar to [Tomas's solution](https://codegolf.stackexchange.com/a/20228):
```
y/01/ #/,say for unpack'(B56)*',unpack u,'CH!(`"(`"":,2``B``@GGDC\'(C#(YI!)("I)"2*,),`4,03D'
```
Here's a screenshot:
![Screenshot of "Hello-World!" ASCII art](https://i.stack.imgur.com/f6qkU.png)
---
**Pps.** I'm pretty sure *this* (**GolfScript, 51 chars**) is the shortest printable-ASCII solution, if you don't count the ones that just call banner / FIGLet or that cheat in some other way:
```
'iJ@Q@HmURBIMM{JkUUJeMRAQIM'{2base(;{' #'=}/}%39/n*
```
The output is the same as for my 71-char Perl solution above.
[Answer]
# Shell + Figlet (35)
```
$ figlet -w 90 -f banner Hello-World!
#     #                                   #     #                             ### 
#     # ###### #      #       ####        #  #  #  ####  #####  #      #####  ### 
#     # #      #      #      #    #       #  #  # #    # #    # #      #    # ### 
####### #####  #      #      #    # ##### #  #  # #    # #    # #      #    #  #  
#     # #      #      #      #    #       #  #  # #    # #####  #      #    #     
#     # #      #      #      #    #       #  #  # #    # #   #  #      #    # ### 
#     # ###### ###### ######  ####         ## ##   ####  #    # ###### #####  ### 
```
[Answer]
## Python 260 215 186 152
```
>>> print'eJyNkFEKwDAIQ/93isC7/x3LyIJullHrR1BfJSIJPUHTlmiUPHbxC7L56wNCgZAxv3SjDWIxsoOb\nzMaBwyHYPJ5sVPNYxXism74vcIsFZlYyrg=='.decode('base64').decode('zip')
#   #        #  #          #   #   #          #     #  #
#   #        #  #          #  # #  #          #     #  #
#   #   ##   #  #   ##      # # # #   ##   ## #   ###  #
#####  #  #  #  #  #  #     # # # #  #  #  #  #  #  #  #
#   #  ####  #  #  #  # ##  # # # #  #  #  #  #  #  #  #
#   #  #     #  #  #  #     # # # #  #  #  #  #  #  #   
#   #   ###  #  #   ##       #   #    ##   #  #   ###  #
```
## Python 196 183 130 114 (but uglyer)
```
>>> print'eJxTVlBWgCAgAQHKqBywAJeyAgJCZREcZWUYyaUMIpUVEKqRNcLEueDqEaZBLVVWQDITADIdFBw='.decode('base64').decode('zip')
# #  #  # #        # # #        #   # #
# # # # # #  #     # # #  #  ## #  ## #
### ##  # # # # ## # # # # # #  # # #
# #  ## # #  #      # #   #  #  #  ## #
```
I used zipped data in base64 encoding. and the code decode it from base64 encoding and then unzipping it.
[Answer]
# PHP — 183 bytes
Using sebcap26's ASCII art as the source...
```
foreach(str_split(base64_decode('iASAERACCYgEgBKQAgmIxIwKoxo5+SSSCqSSSYnkksqkkkmJBJIKpJJIiOSMBEMSOQ'))as$i=>$j)echo strtr(sprintf("%8s%s",decbin(ord($j)),($i+1)%7?"":"\n"),'01',' #');
#   #        #  #          #   #   #          #     #  #
#   #        #  #          #  # #  #          #     #  #
#   #   ##   #  #   ##      # # # #   ##   ## #   ###  #
#####  #  #  #  #  #  #     # # # #  #  #  #  #  #  #  #
#   #  ####  #  #  #  # ##  # # # #  #  #  #  #  #  #  #
#   #  #     #  #  #  #     # # # #  #  #  #  #  #  #   
#   #   ###  #  #   ##       #   #    ##   #  #   ###  #
```
[Answer]
## Brainfuck, 372 Byte
(I know. but just for completeness, there has to be brainfuck ^^ It'S not going to get much shorter, as there are little repetitions. First and second line loop already...)
```
++++++++[>++++>++++<<-]>+++>>++++++++++>>+>++[-<<<<<.>.<.>..>>>[-<<<.>>>]<[-<<<.>>>]<<..<.>>>++[-<<.<.>..........<.>....>>]<<<.>.<.>>.>+>>]<<<<<...>.<.>.<.>.<.>.<.>..<..>..<...>.<.>..<.>..<.>..<..>...<..>.<.>..<...>.<.>>.<<.>.<.>.<.>...<.>.<.>.<.>..<.>.....<.>.<...>.<.>.<.>..<.>.<.>...<.>.<.>..<.>>.<<.>.<.>.<...>.<.>.<.>..<..>.......<..>.<..>...<..>..<.>...<.>..<..>..<.
```
Interpreter here: <http://koti.mbnet.fi/villes/php/bf.php>
---
```
# #     # #          #     #          #    # #
# #  #  # #          #     #          #    # #
### # # # #  ##  ### #  #  #  ##   ## #  ### #
# # #   # # #  #     # ### # #  # #   # #  #
# # ### # #  ##       ## ##   ##  #   #  ##  #
```
---
Combining @ASKASK's number generator and image with my loops and some additional tuning, we get:
## Brainfuck, ~~343 339 336~~ 334 Bytes
Looks uglier than my original version though.
```
+++++[->++++++>+++++++>++<<<]>++>>>+>>++[-<<<<.<.>.<..>>>[-<<<.>>>]>[-<<<.>>>]<<<<..>.<.>>>++[-<<.<.........>.<...>>>]<<.<.>.>.>>+>]<<<<..<<+++++[->>.<.<]>.>.<..>...<.>.<.>.<.>.<..>.<...>..<.>.<..>..<.>.>.<.<.>.<.>.<...>.<.>.<.>.<.>.<.....<++++++[->>.<.<]>..>.<.>.<.>.>.<.<.>.<..>.<..>.<.>.<..>.<.......>...<...>.<..>.<...>.<..>.<..>.
```
(image see @ASKASK's Answer)
[Answer]
# EcmaScript 6, 172 161
```
'¡I%e!c0ĄJ¥eìo0¸ËefMs0µKcÊIs0´Ê¢1éo'.split(0).map(s=>s.split('').map(c=>{for(i=8,s='';i--;)s+=(c.charCodeAt(0)-33)&(1<<i)?'#':' ';return s;}).join('')).join('\n')
```
Output:
```
#         # #        #   #   #           #    #
###   ##  # #  ##    #   #   #  ##  # ## #  ###
#  # #### # # #  #   #   #   # #  # ##   # #  #
#  # #    # # #  #    # # # #  #  # #    # #  #
#  #  ### # #  ##      #   #    ##  #    #  ###
```
Explanation:
> 
> The ASCII text is compacted into a string where each bit represent a *pixel*:
> 
> 
> * `0` for `SPACE`
> * `1` for `#`
> 
> 
> An offset of 33 is applied in order to get only printable characters.
> 
> 
> 
[Answer]
# [Sclipting](http://esolangs.org/wiki/Sclipting), 38 characters (76 bytes)
```
갦륈똄릵꺕녔꺒녪냕녪낷뚕년꺒녦냉괄낵要감嚙긂밃⓶掘⓶終丟併껧뜴꼧밍替現겠合終
```
## Output:
```
# # ## #  #   #     #   #  #  ##  #  ##  #
# # #  #  #  # #    #   # # # # # #  # # #
### ## #  #  # # ## # # # # # ##  #  # # #
# # #  #  #  # #    # # # # # # # #  # #  
# # ## ## ##  #      # #   #  # # ## ##  #
```
[Answer]
# Brainfuck, 362 bytes
Sorry @johannes-h, I saw yours and was inspired to make my own. It uses a combination of faster number generation at the beginning and a simpler picture to generate the result in less bytes. It does not however use loops anywhere else so it is up for optimization.
```
+++++[->++++++>+++++++>++<<<]>++>.<.>.<.....>.<.>.<.........>.<...>.<.........>.<...>.<.>.>.<.<.>.<..>.<..>.<.>.<.........>.<...>.<.........>.<...>.<.>.>.<...<.>.<.>.<.>.<.>.<..>.<..>...<.>.<.>.<.>.<..>.<...>..<.>.<..>..<.>.>.<.<.>.<.>.<...>.<.>.<.>.<.>.<.....>.<.>.<.>.<.>.<.>.<.>.<...>.<.>.<.>.>.<.<.>.<..>.<..>.<.>.<..>.<.......>...<...>.<..>.<...>.<..>.<..>.
```
which generates:
![pic](https://cl.ly/image/060Q1S3k3Y0g/Screen%20Shot%202014-02-06%20at%208.41.32%20PM.png)
[Answer]
# ImageMagick + sed, 71 bytes
I don't see any other ImageMagick entries, so here's my late stake in the ground:
```
convert +antialias label:Hello-World! xpm:-|sed '8,+9y/ /#/;s/[^#]/ /g'
```
I think the `sed` portion can probably be golfed some more.
[Try it online](https://tio.run/nexus/bash#@5@cn1eWWlSioJ2YV5KZmJOZWKyQk5iUmmPlkZqTk68bnl@Uk6KoUFGQa6VbU5yaoqBuoaNtWamvoK@sb12sHx2nHAtkp6v//w8A).
Output:
```
         
  #    #          #  #            ##   #    #            #      #  #     
  #    #          #  #             #   ##  ##            #      #  #     
  #    #          #  #             #  ###  #             #      #  #     
  #    #   ####   #  #  ####       #  # #  #  ####   # # #  ### #  #     
  ######  #    #  #  # ##  ##      #  # #  # ##  ##  ##  # ##  ##  #     
  #    #  ######  #  # #    # ###   # #  # # #    #  #   # #    #  #     
  #    #  #       #  # #    #       ##   ##  #    #  #   # #    #  #     
  #    #  ##  ##  #  # ##  ##       ##   ##  ##  ##  #   # ##  ##        
  #    #   ####   #  #  ####        ##   ##   ####   #   #  ### #  #     
                                                                         
```
[Answer]
## **Postscript, ~~154~~ 133**
```
<~GasbQ8I>GO#QsOD7:?,pa&5XCgo@jeLPX:a4F9kN1nu1B@8KjD"^]WgY[MA.2VBjpTNo5$Pi%uI9Lr>,9`~>/FlateDecode filter 999 string readstring pop =
```
i.e. 
```
    <~GasbQ8I>GO#QsOD7:?,pa&5XCgo@jeLPX:a4F9kN1nu1B@8KjD"^]WgY[MA.2VBjpTNo5$Pi%uI
9Lr>,9`~>
/FlateDecode filter 
999 string readstring pop 
=
```
ASCII-only source, inspiration for ASCII-art was Johannes H.'s answer :-)
```
# #     # #         #    #          #    # #
# #  #  # #         #    #          #    # #
### # # # #  ##  ## #    #  ##   ## #  ### #
# # #   # # #  #    # ## # #  # #   # #  #
# # ### # #  ##      #  #   ##  #   #  ##  #
```
(more readable in terminal)
## **Perl, 102**
```
print$-%44?'':"\n",vec(unpack(u,'<!040`A!:4@`A`*%7918REEM1":T4)75E(#&1"0``'),$-++,1)?'#':' 'for 0..219
```
Same output as above. I know I lost to both Perl answers above, but I publish it anyway. At least I tried and was moving in the right direction (and hadn't seen shortest answer) :-).
[Answer]
# Pure Bash, no external utilities - 133 characters:
```
c=" #";for x in 0x{5250088045,55520A914D,74556AAA54,535205124D};do while((s=(t=x)^(x/=2)*2,t));do L=${c:s:1}$L;done;echo "$L";L=;done
```
Uses right and left shift (divide and multiply by 2) and xor to find the one bits.
Font data stolen from Blender/Ilmari Karonen.
Tested in Bash 3.2 and 4.2
By the way, this is only 166 characters:
```
echo "# #  #  # #        #   #        #   # #
# # # # # #  #     # # #  #   # #  ## #
### #   # # # # ## # # # # # #  # # #  
# #  ## # #  #      # #   #  #  #  ## #"
```
[Answer]
# Python 3, 114
```
print('\n'.join(bin(x)[2:]for x in[353530052677,366448644429,499649260116,357858349645]).translate({48:32,49:35}))
```
Output (4-character tall **e** and **W** stolen from [@Ilmari Karonen](https://codegolf.stackexchange.com/a/20246/7800)):
```
# #  #  # #        #   #        #   # #
# # # # # #  #     # # #  #   # #  ## #
### #   # # # # ## # # # # # #  # # #  
# #  ## # #  #      # #   #  #  #  ## #
```
And a shorter one (107):
```
print('\n'.join(bin(x)[2:]for x in[11993933918769,16391913257513,12021315382193]).translate({48:32,49:35}))
```
Output:
```
# # ### #   #   ###   # # ### ##  #   ##   #
### ### #   #   # #   # # # # ### #   # #  #
# # ### ### ### ###   ### ### # # ### ##   #
```
[Answer]
## Python 154 Characters, (Char 5X7 in size)
```
print'\n'.join(map(''.join,zip(*(''.join("# "[int(e)]for e in"{:07b}".format(ord(c))[1:])for c in"€÷÷÷€ÿñêêòÿ€ÿ€ÿñîîñÿûûÿŸáþÁ¿ÁþáŸÿñîîñÿàïÿ€ÿÿñîî€ÿ‚"))))
```
**Output**
```
#   #      # #         #   #   #         #     # #
#   #      # #         #  # #  #         #     # #
#   #  ##  # #  ##      # # # #   ##  ## #   ### #
##### #  # # # #  #     # # # #  #  # #  #  #  # #
#   # #### # # #  # ##  # # # #  #  # #  #  #  # #
#   # #    # # #  #     # # # #  #  # #  #  #  #  
#   #  ### # #  ##       #   #    ##  #  #   ### #
```
[Answer]
# Bash:
## (~~103~~ 89 Bytes)
### Code:
```
base64 -d<<<rohBEmRiqIihFVRS7IitVWRSqIihVVRQru5Aoldi|xxd -b|sed -e's/ //g;s/1/#/g;s/0/ /g'|cut -b'9-55'
```
### Output:
```
# # ### #   #    #     #   #  #  ##  #   ##   #
# # #   #   #   # #    #   # # # # # #   # #  #
### ##  #   #   # # ## # # # # # ##  #   # #  #
# # #   #   #   # #    # # # # # # # #   # #   
# # ### ### ###  #      # #   #  # # ### ##   #
```
Smaller, but less readable (Based on <http://mckgyver.pbworks.com/f/1240440791/3PixelFont.jpg>):
### Code:
```
base64 -d<<<V0nCLsmQdklaqslQV23BTq2Q|xxd -b|sed -e's/ //g;s/1/#/g;s/0/ /g;'|cut -c'9-52'
```
### Output:
```
 # # ### #  #  ###    #   # ### ##  #  ##  #
 ### ##  #  #  # # ## # # # # # ##  #  # # #
 # # ### ## ## ###     # #  ### # # ## ##  #
```
[Answer]
# Javascript / ES6 (108 bytes)
Copy into console:
```
[,0xa0a028045,0xeeae2bb5d,0xacaabaa54,0xaeae2ba5d].map(a=>a.toString(2).replace(/./g,b=>' #'[b])).join('\n')
```
Output:
```
"
# #     # #       # #        #   # #
### ### # # ###   # # ### ## # ### #
# # ##  # # # # # ### # # #  # # #  
# # ### # # ###   # # ### #  # ### #"
```
(Needs ECMAScript6 compatible browser ie. Firefox 22+)
Inspired by @maximeeuziere, @p01, @aemkei
[Answer]
Authors: xem, aemkei, p01, jonas
Execute this in the JS console.
## JavaScript, cross-browser,~~133~~ ~~132~~ ~~126~~ 117 bytes
```
for(i=s="";l=[43117609029,64070269789,46349920852,46890400349][i++];)for(j=0,s+="\n";c=l.toString(2)[j++];)s+=" #"[c]
```
## JavaScript, ES6, works on Firefox, 108 bytes
```
[,0xa0a028045,0xeeae2bb5d,0xacaabaa54,0xaeae2ba5d].map(a=>a.toString(2).replace(/./g,b=>' #'[b])).join('\n')
```
## Result:
```
>
# #     # #       # #        #   # #
### ### # # ###   # # ### ## # ### #
# # ##  # # # # # ### # # #  # # #  
# # ### # # ###   # # ### #  # ### #
```
[Answer]
# HTML, 209 characters
```
<pre># #     # #                      #   # #
# #     # #        # # #         #   # #
###  ## # #  #     # # #  #  ##  #  ## #
# # ##  # # # # ## # # # # # # # # # #
# # ### # #  #      # #   #  #   # ### #</pre>
```
Does this count? :)
[Answer]
Shell, 20 characters:
```
banner Hello-world\!
```
For this to work, of course you need the `banner` program. On Debian, you can get it by installing the `bsdmainutils` package.
This prints a beautifully rendered version of your message, designed to be printed on one of the old continuous-feed printers, so the output of the above text is 322 lines long by 123 columns wide, and you turn the printout on its side to read the message. You could hang the resulting paper on the wall as a banner, hence the name.
<http://en.wikipedia.org/wiki/Banner_%28Unix%29>
EDIT: Looks like Debian also has the `sysvbanner` package, which installs a banner program that prints the text horizontally for display on a terminal. However, this only prints the first 10 characters of the message, so it is kind of annoying for this code-golf problem!
[Answer]
# bash, ~~175~~ 170 bytes
You need to *waste* quite a few characters in order to produce a *pretty output*!
```
base64 -d<<<H4sICKaT9FICAzAxAK2RQQ7AIAgE776CZP7/x1ZjERebcJAL0QybhcV6YdWizAPNaUatQQLFpj6h+c/XA05WF9Wtk9WJcxz4oe6e1YPQa7Wiut2wfjJ16STY30lSnNIlzvdpHhd6MiTOB65NYc+LAgAA|zcat
```
Output:
```
#     #                                         #     #                                   ###
#     #  ######  #       #        ####          #  #  #   ####   #####   #       #####    ###
#     #  #       #       #       #    #         #  #  #  #    #  #    #  #       #    #   ###
#######  #####   #       #       #    #  #####  #  #  #  #    #  #    #  #       #    #    #
#     #  #       #       #       #    #         #  #  #  #    #  #####   #       #    #
#     #  #       #       #       #    #         #  #  #  #    #  #   #   #       #    #   ###
#     #  ######  ######  ######   ####           ## ##    ####   #    #  ######  #####    ###
```
[Answer]
**F# - 204 characters**
```
for s in(Seq.map(Seq.unfold(function|0L->None|i->Some(" #".[int(i%2L)],i/2L)))[173948798213L;174770890021L;191304848727L;182715110773L;45277009173L;191279670629L])do printfn"%s"(new string(Seq.toArray s))
```
Output:
```
# #     # #        # #         #   # #
# #  #  # #  #     # #  #   ## #   # #
### # # # # # #    # # # # #   #  ## #
# # ### # # # # ## # # # # #   # # # #
# # #   # # # #    ### # # #   # # #  
# #  ## # #  #     # #  #  #   #  ## #
```
[Answer]
# Python + [pyfiglet](https://pypi.python.org/pypi/pyfiglet/) -- 87 characters
```
from pyfiglet import figlet_format     
print(figlet_format('Hello-World!', font='banner'))
```
### Output
```
#     #                                   #     #                             ### 
#     # ###### #      #       ####        #  #  #  ####  #####  #      #####  ### 
#     # #      #      #      #    #       #  #  # #    # #    # #      #    # ### 
####### #####  #      #      #    # ##### #  #  # #    # #    # #      #    #  #  
#     # #      #      #      #    #       #  #  # #    # #####  #      #    #     
#     # #      #      #      #    #       #  #  # #    # #   #  #      #    # ### 
#     # ###### ###### ######  ####         ## ##   ####  #    # ###### #####  ### 
```
To install `pyfiglet`, run:
```
$ pip install pyfiglet
```
[Answer]
# Python with pyfiglet: 66 using argv, 69 without
## 66:
```
from pyfiglet import*
print(figlet_format(sys.argv[1],font='3x5'))
```
## 69:
```
from pyfiglet import*
print(figlet_format('Hello-World!',font='3x5'))
```
firs must be called as, for example:
python asciiart.py 'Hello-World!'
second:
python asciiart.py.
Output:
```
    # #      #   #          # #          #    #  #  
    # # ###  #   #  ###     # # ### ###  #  ###  #  
    ### ##   #   #  # # ### ### # # #    #  # #  #  
    # # ###  ##  ## ###     ### ### #    ## ###     
    # #                     # #                  #  
```
(Well, it looks kinda crappy with this font. Nevertheless :) )
[edit] removed obsolete dash from the argument.
[Answer]
# Javascript 137 (134)
Uses the bits of integers to represent sharps an white spaces.
Tested with Firefox 27. 
**137 character**
```
s="";[0xadb73eead9,g=0xa9252aaa94,0xed252aac95,g+1,0xad272aee99].map(n=>{for(;n>0;n/=2)n%2?[s="#"+s,n--]:s=" "+s;s="\n"+s});console.log(s)
# # ## #  #  ###  # # # ### ### #  ##  #
# # #  #  #  # #  # # # # # # # #  # # #
### ## #  #  # #  # # # # # ##  #  # # #
# # #  #  #  # #  # # # # # # # #  # #  
# # ## ## ## ###  ##### ### # # ## ##  #"
```
**134 character (rotated 180°)**
```
s="";[0xadb73eead9,g=0xa9252aaa94,0xed252aac95,g+1,0xad272aee99].map(n=>{s+="\n";for(;n>0;n/=2)n%2?[s+="#",n--]:s+=" "});console.log(s)
"
#  ## ## # # ### #####  ### ## ## ## # #
  # #  # # # # # # # #  # #  #  #  # # #
# # #  #  ## # # # # #  # #  #  # ## ###
# # #  # # # # # # # #  # #  #  #  # # #
#  ##  # ### ### # # #  ###  #  # ## # #"
```
[Answer]
# Python3 (126)
There's an additional space between the chars to make it better readable. So technically it's a 125 character solution.
```
print(' '.join(['','\n'][i%40==0]+['#',' '][int('72liw1j4glyc34dum02j2a4ipxa8b7vvp65x511',36)//2**i%2==0]for i in range(200)))
```
Output:
```
#   #   # #   #     #     # # #     #   #   #   # # #   # # #   #     # #     # 
#   #   #     #     #     #   #     #   #   #   #   #   #   #   #     #   #   # 
# # #   # #   #     #     #   #     #   #   #   #   #   # #     #     #   #   # 
#   #   #     #     #     #   #     #   #   #   #   #   #   #   #     #   #     
#   #   # #   # #   # #   # # #     # # # # #   # # #   #   #   # #   # #     #
```
[Answer]
# Bash ~~37~~, 33
```
toilet<<<"Hello-world"|tr \"m \#
 #    #        ###    ###                                       ###        # 
 #    #  ###     #      #     ###         #     #  ###    # ##    #     #### 
 ###### ##  #    #      #    ## ##        ## # ## ## ##   ##  #   #    ## ## 
 #    # #####    #      #    #   #   ###   #####  #   #   #       #    #   # 
 #    # #####    ###    ###  #####          # #   #####   #       ###  ##### 
```
Which is the same as:
```
echo "Hello-world" | toilet
```
From `man toilet`
> 
> TOIlet - display large colourful character
> 
> 
> 
With `tr "'\"m" "#"` all `"` chars are replaced with `#`.
[Answer]
# Smalltalk, 151
although this golf game is already over, for the reference:
```
i:=((Form extent:115@14)displayString:'Hello world'x:0y:12;asImage).0to:13 do:[:y|i valuesAtY:y from:0to:114 do:[:x :p|({$#.$ }at:p+1)print].Stdout cr]
```
output:
```
 ***  ***             ***       ***                                                         ***           **       
  *    *                *         *                                                           *            *       
  *    *                *         *                                                           *            *       
  *    *     ***        *         *        ***              ***   ***    ***     *** ***      *        *** *       
  ******    *   *       *         *       *   *              *     *    *   *      **   *     *       *   **       
  *    *   *     *      *         *      *     *             *  *  *   *     *     *          *      *     *       
  *    *   *******      *         *      *     *              * * *    *     *     *          *      *     *       
  *    *   *            *         *      *     *              * * *    *     *     *          *      *     *       
  *    *    *    *      *         *       *   *               ** **     *   *      *          *       *   **       
 ***  ***    ****    *******   *******     ***                *   *      ***     ******    *******     *** **      
```
]