The Begining of Kill da Ducks

Learn how it was at the begining.

Last progress entry

See how the game development is going

Grav

A WIP arcade hard game you should check :P

Last Bug revealed

Look at the game's bugs and have some fun!

About me

Just a bit of information about myself.

Jul 10, 2013

Moving to a new Blog!

I just wanted to say that I changed my blog. I won't be posting here anymore, I'll be doing it at


Well that's all! I also changed my Twitter to @posva

May 27, 2013

Catimg

Hello again! I have really been busy for the past few months and couldn't work on Kill da Ducks too much but I guess I'll be able to very soon.

Other than that I have been working on little projects that doesn't take too much time and I should have written something when I did them but I didn't... So now as it's too late I'll be speaking about my last little project: catimg

Some of you may know the command line "cat" to print files into the standard input. Well catimg also print files but it actually print pictures. Sounds funny right? Here is a little screenshot:


That's actually a console and as you can see I'm printing a Mario picture.

You may be asking yourself why would I code such a stupid thing. Well actually it's just for the fun but I'm pretty proud of the result as it's quite beatifull.

How it works:
In order to make this work I needed to use a 256 colors shell. Well I already have one as I use zsh and love to have colors everywhere cause it makes my life happier :). Then I needed to read the pixels from an picture and I knew I was going to use convert (ImageMagick). The problem was "How do transform the picture to fit the terminal colors?". Searching a bit on the internet I found an option called remap. This option takes a picture and convert another picture to fit the pallette of the given remap picture. So I took this website: http://www.calmar.ws/vim/256-xterm-24bit-rgb-color-chart.html to pick up the colors. The problem was that the text was creating residual colors and I needed to kick them out. I saved the webpage and modified the code source with many sed in vim to get a nicely drawn pallette with no text:

      
Finally I just removed a black space to create the alpha0 color aka transparence. Then I copied the codes on vim and parsed them to get them nicely listed as below:

#000000
#800000
#008000
#808000
#000080
#800080
#008080
#C0C0C0
#808080
#FF0000
#00FF00
#FFFF00
#0000FF
#FF00FF
#00FFFF
#FFFFFF
#000000
#00005F
#000087
#0000AF
#0000D7
#0000FF
#005F00
#005F5F
#005F87
#005FAF
#005FD7
#005FFF
#008700
#00875F
#008787
#0087AF
#0087D7
#0087FF
#00AF00
#00AF5F
#00AF87
#00AFAF
#00AFD7
#00AFFF
#00D700
#00D75F
#00D787
#00D7AF
#00D7D7
#00D7FF
#00FF00
#00FF5F
#00FF87
#00FFAF
#00FFD7
#00FFFF
#5F0000
#5F005F
#5F0087
#5F00AF
#5F00D7
#5F00FF
#5F5F00
#5F5F5F
#5F5F87
#5F5FAF
#5F5FD7
#5F5FFF
#5F8700
#5F875F
#5F8787
#5F87AF
#5F87D7
#5F87FF
#5FAF00
#5FAF5F
#5FAF87
#5FAFAF
#5FAFD7
#5FAFFF
#5FD700
#5FD75F
#5FD787
#5FD7AF
#5FD7D7
#5FD7FF
#5FFF00
#5FFF5F
#5FFF87
#5FFFAF
#5FFFD7
#5FFFFF
#870000
#87005F
#870087
#8700AF
#8700D7
#8700FF
#875F00
#875F5F
#875F87
#875FAF
#875FD7
#875FFF
#878700
#87875F
#878787
#8787AF
#8787D7
#8787FF
#87AF00
#87AF5F
#87AF87
#87AFAF
#87AFD7
#87AFFF
#87D700
#87D75F
#87D787
#87D7AF
#87D7D7
#87D7FF
#87FF00
#87FF5F
#87FF87
#87FFAF
#87FFD7
#87FFFF
#AF0000
#AF005F
#AF0087
#AF00AF
#AF00D7
#AF00FF
#AF5F00
#AF5F5F
#AF5F87
#AF5FAF
#AF5FD7
#AF5FFF
#AF8700
#AF875F
#AF8787
#AF87AF
#AF87D7
#AF87FF
#AFAF00
#AFAF5F
#AFAF87
#AFAFAF
#AFAFD7
#AFAFFF
#AFD700
#AFD75F
#AFD787
#AFD7AF
#AFD7D7
#AFD7FF
#AFFF00
#AFFF5F
#AFFF87
#AFFFAF
#AFFFD7
#AFFFFF
#D70000
#D7005F
#D70087
#D700AF
#D700D7
#D700FF
#D75F00
#D75F5F
#D75F87
#D75FAF
#D75FD7
#D75FFF
#D78700
#D7875F
#D78787
#D787AF
#D787D7
#D787FF
#D7AF00
#D7AF5F
#D7AF87
#D7AFAF
#D7AFD7
#D7AFFF
#D7D700
#D7D75F
#D7D787
#D7D7AF
#D7D7D7
#D7D7FF
#D7FF00
#D7FF5F
#D7FF87
#D7FFAF
#D7FFD7
#D7FFFF
#FF0000
#FF005F
#FF0087
#FF00AF
#FF00D7
#FF00FF
#FF5F00
#FF5F5F
#FF5F87
#FF5FAF
#FF5FD7
#FF5FFF
#FF8700
#FF875F
#FF8787
#FF87AF
#FF87D7
#FF87FF
#FFAF00
#FFAF5F
#FFAF87
#FFAFAF
#FFAFD7
#FFAFFF
#FFD700
#FFD75F
#FFD787
#FFD7AF
#FFD7D7
#FFD7FF
#FFFF00
#FFFF5F
#FFFF87
#FFFFAF
#FFFFD7
#FFFFFF
#080808
#121212
#1C1C1C
#262626
#303030
#3A3A3A
#444444
#4E4E4E
#585858
#626262
#666666
#767676
#808080
#8A8A8A
#949494
#9E9E9E
#A8A8A8
#B2B2B2
#BCBCBC
#C6C6C6
#D0D0D0
#DADADA
#E4E4E4
#EEEEEE
Actually I needed to make some modifications because two of the codes were wrong.
Then I just needed to adapt the size of the picture to the console size using tput cols. I used double spaces to make image aspect ratio looks better... and voilĂ ! Some grep to seek the code 1..256 corresponding to each color and print them with echo and some colors escapes characters!

The only thing I don't like is how slow it is but I cannot find what to do in order to improve it other than using a programming language to seek the color code (using a hashing table would be so faster....)

For those who would like to use it, you can get the code at GitHub.

Have a nice day!