X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f996b,7f7d1aa9b39cc9f5 X-Google-Attributes: gidf996b,public X-Google-ArrivalTime: 2001-04-27 11:39:22 PST Path: newsfeed.google.com!newsfeed.stanford.edu!novia!howland.erols.net!panix!news.panix.com!qz!not-for-mail From: Eli the Bearded <*@qz.little-neck.ny.us> Newsgroups: alt.ascii-art Subject: Re: image 2 ascii logo Date: 27 Apr 2001 18:39:18 GMT Organization: Some absurd concept Lines: 628 Message-ID: References: <3AE7C44F.3F72B3D4@rz.uni-karlsruhe.de> <3AE93004.EF52674F@rz.uni-karlsruhe.de> NNTP-Posting-Host: panix1.panix.com X-Trace: news.panix.com 988396758 9942 166.84.0.226 (27 Apr 2001 18:39:18 GMT) X-Complaints-To: abuse@panix.com NNTP-Posting-Date: 27 Apr 2001 18:39:18 GMT X-Files: Used for sharpening claws and teeth on your hawk and hacksaw X-Motto: "Erosion of rights never seems to reverse itself." -- kenny@panix X-US-Congress: Moronic Fucks. X-Attribution: EtB X-Usenet-II: Because it is time for October. Encrypted: double rot-13 X-Newsreader: Sony Playstation 5.0MIPS Xref: newsfeed.google.com alt.ascii-art:5510 In alt.ascii-art, Markus Gebhard wrote: > Eli the Bearded wrote: [asked about algorithms for image->ascii] > So my algorithms are based on gray shades which only seem to work for up > to a grid of 2x2, while other algorithms are based on a black/white > decission. E.g. you can take a 3x3 grid and asign black/white pixels for > each region to each ascii character: The tool that did that rendering of the logo looks at black and white pixels from a 4 tall and 2 wide grid. I've posted a perl script here that takes a grayscale image which has been already scaled 50% in height and tries to pick a single best character for each pixel. Below I've charted the input and output of the 4x2 method. Beware: it is long. (500+ lines, easily made thanks to perl's "format" command.) I'm working on another method that tries to assign characters based on a 2x2 grid black and white grid. It will again assume the image has been reduced in its Y-scale to match the font proportions. (I think this is a cleaner way than 2x1, 3x1, 4x2, etc, since it makes it easier to scale for fonts that are not exactly twice as tall as wide.) > For future enhancements in Jave's image2ascii tool, I consider writing > additional algorithms by > a) trying grey shades in a 2x3 or 3x2 raster > b) using the black/white methode with some ideas I have > > So now that I have put my cards on the table, what are your ideas and > experiences? Elijah ------ also working on mosaics of image thumbnails format = @||||||||||| @||||||||||| @||||||||||| @||||||||||| $h[0]{i}, $h[1]{i}, $h[2]{i}, $h[3]{i}, @<<<<<<<<<<< @<<<<<<<<<<< @<<<<<<<<<<< @<<<<<<<<<<< $h[0]{b}, $h[1]{b}, $h[2]{b}, $h[3]{b}, ^< ^< ^< ^< $h[0]{b}, $h[1]{b}, $h[2]{b}, $h[3]{b}, ^< @< ^< @< ^< @< ^< @< $h[0]{b},$h[0]{c},$h[1]{b},$h[1]{c},$h[2]{b},$h[2]{c},$h[3]{b},$h[3]{c} ^< ^< ^< ^< $h[0]{b}, $h[1]{b}, $h[2]{b}, $h[3]{b}, ^< ^< ^< ^< $h[0]{b}, $h[1]{b}, $h[2]{b}, $h[3]{b}, . 0 1 2 3 00 00 00 00 10 00 00 00 01 00 00 00 11 00 00 00 00 10 01 11 00 00 ' 00 ` 00 " 00 00 00 00 00 00 00 00 4 5 6 7 00 10 00 00 10 10 00 00 01 10 00 00 11 10 00 00 00 10 01 11 10 - 10 ' 10 ' 10 ' 00 00 00 00 00 00 00 00 8 9 10 11 00 01 00 00 10 01 00 00 01 01 00 00 11 01 00 00 00 10 01 11 01 - 01 ` 01 ` 01 ` 00 00 00 00 00 00 00 00 12 13 14 15 00 11 00 00 10 11 00 00 01 11 00 00 11 11 00 00 00 10 01 11 11 - 11 ^ 11 ^ 11 " 00 00 00 00 00 00 00 00 16 17 18 19 00 00 10 00 10 00 10 00 01 00 10 00 11 00 10 00 00 10 01 11 00 . 00 : 00 : 00 : 10 10 10 10 00 00 00 00 20 21 22 23 00 10 10 00 10 10 10 00 01 10 10 00 11 10 10 00 00 10 01 11 10 | 10 | 10 / 10 ? 10 10 10 10 00 00 00 00 24 25 26 27 00 01 10 00 10 01 10 00 01 01 10 00 11 01 10 00 00 10 01 11 01 / 01 > 01 / 01 > 10 10 10 10 00 00 00 00 28 29 30 31 00 11 10 00 10 11 10 00 01 11 10 00 11 11 10 00 00 10 01 11 11 ~ 11 + 11 / 11 * 10 10 10 10 00 00 00 00 32 33 34 35 00 00 01 00 10 00 01 00 01 00 01 00 11 00 01 00 00 10 01 11 00 . 00 : 00 : 00 : 01 01 01 01 00 00 00 00 36 37 38 39 00 10 01 00 10 10 01 00 01 10 01 00 11 10 01 00 00 10 01 11 10 \ 10 \ 10 < 10 < 01 01 01 01 00 00 00 00 40 41 42 43 00 01 01 00 10 01 01 00 01 01 01 00 11 01 01 00 00 10 01 11 01 | 01 \ 01 | 01 ? 01 01 01 01 00 00 00 00 44 45 46 47 00 11 01 00 10 11 01 00 01 11 01 00 11 11 01 00 00 10 01 11 11 ~ 11 \ 11 + 11 * 01 01 01 01 00 00 00 00 48 49 50 51 00 00 11 00 10 00 11 00 01 00 11 00 11 00 11 00 00 10 01 11 00 - 00 : 00 : 00 : 11 11 11 11 00 00 00 00 52 53 54 55 00 10 11 00 10 10 11 00 01 10 11 00 11 10 11 00 00 10 01 11 10 ~ 10 ? 10 < 10 < 11 11 11 11 00 00 00 00 56 57 58 59 00 01 11 00 10 01 11 00 01 01 11 00 11 01 11 00 00 10 01 11 01 ~ 01 > 01 ? 01 > 11 11 11 11 00 00 00 00 60 61 62 63 00 11 11 00 10 11 11 00 01 11 11 00 11 11 11 00 00 10 01 11 11 = 11 b 11 d 11 # 11 11 11 11 00 00 00 00 64 65 66 67 00 00 00 10 10 00 00 10 01 00 00 10 11 00 00 10 00 10 01 11 00 . 00 : 00 : 00 : 00 00 00 00 10 10 10 10 68 69 70 71 00 10 00 10 10 10 00 10 01 10 00 10 11 10 00 10 00 10 01 11 10 : 10 ! 10 / 10 ? 00 00 00 00 10 10 10 10 72 73 74 75 00 01 00 10 10 01 00 10 01 01 00 10 11 01 00 10 00 10 01 11 01 : 01 : 01 / 01 ? 00 00 00 00 10 10 10 10 76 77 78 79 00 11 00 10 10 11 00 10 01 11 00 10 11 11 00 10 00 10 01 11 11 : 11 ? 11 ? 11 P 00 00 00 00 10 10 10 10 80 81 82 83 00 00 10 10 10 00 10 10 01 00 10 10 11 00 10 10 00 10 01 11 00 , 00 i 00 / 00 ? 10 10 10 10 10 10 10 10 84 85 86 87 00 10 10 10 10 10 10 10 01 10 10 10 11 10 10 10 00 10 01 11 10 | 10 | 10 | 10 T 10 10 10 10 10 10 10 10 88 89 90 91 00 01 10 10 10 01 10 10 01 01 10 10 11 01 10 10 00 10 01 11 01 / 01 ? 01 / 01 7 10 10 10 10 10 10 10 10 92 93 94 95 00 11 10 10 10 11 10 10 01 11 10 10 11 11 10 10 00 10 01 11 11 r 11 } 11 / 11 P 10 10 10 10 10 10 10 10 96 97 98 99 00 00 01 10 10 00 01 10 01 00 01 10 11 00 01 10 00 10 01 11 00 , 00 : 00 ; 00 ? 01 01 01 01 10 10 10 10 100 101 102 103 00 10 01 10 10 10 01 10 01 10 01 10 11 10 01 10 00 10 01 11 10 > 10 ? 10 S 10 S 01 01 01 01 10 10 10 10 104 105 106 107 00 01 01 10 10 01 01 10 01 01 01 10 11 01 01 10 00 10 01 11 01 / 01 ) 01 | 01 7 01 01 01 01 10 10 10 10 108 109 110 111 00 11 01 10 10 11 01 10 01 11 01 10 11 11 01 10 00 10 01 11 11 > 11 $ 11 $ 11 & 01 01 01 01 10 10 10 10 112 113 114 115 00 00 11 10 10 00 11 10 01 00 11 10 11 00 11 10 00 10 01 11 00 v 00 ? 00 ? 00 $ 11 11 11 11 10 10 10 10 116 117 118 119 00 10 11 10 10 10 11 10 01 10 11 10 11 10 11 10 00 10 01 11 10 + 10 } 10 $ 10 F 11 11 11 11 10 10 10 10 120 121 122 123 00 01 11 10 10 01 11 10 01 01 11 10 11 01 11 10 00 10 01 11 01 / 01 $ 01 / 01 & 11 11 11 11 10 10 10 10 124 125 126 127 00 11 11 10 10 11 11 10 01 11 11 10 11 11 11 10 00 10 01 11 11 p 11 D 11 & 11 H 11 11 11 11 10 10 10 10 128 129 130 131 00 00 00 01 10 00 00 01 01 00 00 01 11 00 00 01 00 10 01 11 00 . 00 : 00 : 00 : 00 00 00 00 01 01 01 01 132 133 134 135 00 10 00 01 10 10 00 01 01 10 00 01 11 10 00 01 00 10 01 11 10 : 10 \ 10 : 10 ? 00 00 00 00 01 01 01 01 136 137 138 139 00 01 00 01 10 01 00 01 01 01 00 01 11 01 00 01 00 10 01 11 01 : 01 \ 01 ! 01 ? 00 00 00 00 01 01 01 01 140 141 142 143 00 11 00 01 10 11 00 01 01 11 00 01 11 11 00 01 00 10 01 11 11 : 11 ? 11 ? 11 $ 00 00 00 00 01 01 01 01 144 145 146 147 00 00 10 01 10 00 10 01 01 00 10 01 11 00 10 01 00 10 01 11 00 \ 00 \ 00 : 00 ? 10 10 10 10 01 01 01 01 148 149 150 151 00 10 10 01 10 10 10 01 01 10 10 01 11 10 10 01 00 10 01 11 10 \ 10 | 10 ( 10 $ 10 10 10 10 01 01 01 01 152 153 154 155 00 01 10 01 10 01 10 01 01 01 10 01 11 01 10 01 00 10 01 11 01 < 01 % 01 ? 01 Z 10 10 10 10 01 01 01 01 156 157 158 159 00 11 10 01 10 11 10 01 01 11 10 01 11 11 10 01 00 10 01 11 11 < 11 $ 11 $ 11 & 10 10 10 10 01 01 01 01 160 161 162 163 00 00 01 01 10 00 01 01 01 00 01 01 11 00 01 01 00 10 01 11 00 , 00 \ 00 i 00 ? 01 01 01 01 01 01 01 01 164 165 166 167 00 10 01 01 10 10 01 01 01 10 01 01 11 10 01 01 00 10 01 11 10 \ 10 \ 10 ? 10 \ 01 01 01 01 01 01 01 01 168 169 170 171 00 01 01 01 10 01 01 01 01 01 01 01 11 01 01 01 00 10 01 11 01 | 01 | 01 | 01 T 01 01 01 01 01 01 01 01 172 173 174 175 00 11 01 01 10 11 01 01 01 11 01 01 11 11 01 01 00 10 01 11 11 ? 11 \ 11 4 11 9 01 01 01 01 01 01 01 01 176 177 178 179 00 00 11 01 10 00 11 01 01 00 11 01 11 00 11 01 00 10 01 11 00 v 00 ? 00 ? 00 $ 11 11 11 11 01 01 01 01 180 181 182 183 00 10 11 01 10 10 11 01 01 10 11 01 11 10 11 01 00 10 01 11 10 \ 10 \ 10 $ 10 & 11 11 11 11 01 01 01 01 184 185 186 187 00 01 11 01 10 01 11 01 01 01 11 01 11 01 11 01 00 10 01 11 01 + 01 $ 01 { 01 & 11 11 11 11 01 01 01 01 188 189 190 191 00 11 11 01 10 11 11 01 01 11 11 01 11 11 11 01 00 10 01 11 11 q 11 & 11 & 11 H 11 11 11 11 01 01 01 01 192 193 194 195 00 00 00 11 10 00 00 11 01 00 00 11 11 00 00 11 00 10 01 11 00 _ 00 : 00 : 00 ? 00 00 00 00 11 11 11 11 196 197 198 199 00 10 00 11 10 10 00 11 01 10 00 11 11 10 00 11 00 10 01 11 10 : 10 ? 10 ? 10 $ 00 00 00 00 11 11 11 11 200 201 202 203 00 01 00 11 10 01 00 11 01 01 00 11 11 01 00 11 00 10 01 11 01 : 01 ? 01 ? 01 $ 00 00 00 00 11 11 11 11 204 205 206 207 00 11 00 11 10 11 00 11 01 11 00 11 11 11 00 11 00 10 01 11 11 : 11 $ 11 $ 11 & 00 00 00 00 11 11 11 11 208 209 210 211 00 00 10 11 10 00 10 11 01 00 10 11 11 00 10 11 00 10 01 11 00 \ 00 ? 00 ? 00 $ 10 10 10 10 11 11 11 11 212 213 214 215 00 10 10 11 10 10 10 11 01 10 10 11 11 10 10 11 00 10 01 11 10 ? 10 L 10 $ 10 [ 10 10 10 10 11 11 11 11 216 217 218 219 00 01 10 11 10 01 10 11 01 01 10 11 11 01 10 11 00 10 01 11 01 < 01 Z 01 / 01 Z 10 10 10 10 11 11 11 11 220 221 222 223 00 11 10 11 10 11 10 11 01 11 10 11 11 11 10 11 00 10 01 11 11 c 11 k 11 & 11 R 10 10 10 10 11 11 11 11 224 225 226 227 00 00 01 11 10 00 01 11 01 00 01 11 11 00 01 11 00 10 01 11 00 , 00 ? 00 ? 00 $ 01 01 01 01 11 11 11 11 228 229 230 231 00 10 01 11 10 10 01 11 01 10 01 11 11 10 01 11 00 10 01 11 10 > 10 \ 10 S 10 S 01 01 01 01 11 11 11 11 232 233 234 235 00 01 01 11 10 01 01 11 01 01 01 11 11 01 01 11 00 10 01 11 01 ? 01 $ 01 J 01 ] 01 01 01 01 11 11 11 11 236 237 238 239 00 11 01 11 10 11 01 11 01 11 01 11 11 11 01 11 00 10 01 11 11 > 11 & 11 1 11 9 01 01 01 01 11 11 11 11 240 241 242 243 00 00 11 11 10 00 11 11 01 00 11 11 11 00 11 11 00 10 01 11 00 o 00 b 00 d 00 & 11 11 11 11 11 11 11 11 244 245 246 247 00 10 11 11 10 10 11 11 01 10 11 11 11 10 11 11 00 10 01 11 10 b 10 b 10 & 10 6 11 11 11 11 11 11 11 11 248 249 250 251 00 01 11 11 10 01 11 11 01 01 11 11 11 01 11 11 00 10 01 11 01 d 01 & 01 d 01 H 11 11 11 11 11 11 11 11 252 253 254 255 00 11 11 11 10 11 11 11 01 11 11 11 11 11 11 11 00 10 01 11 11 # 11 H 11 H 11 M 11 11 11 11 11 11 11 11