|
|
That was OK. But, being an old guy, I really liked the version by the tokens on the same website.
You should check it out.
Live music kicks studio recordings every time.
|
|
|
|
|
You're evil. Thanks for that.
Stuck. In my head. For the rest of the day.
cheers
Chris Maunder
|
|
|
|
|
I'm building the drawing portions of my graphics library finally - the bit that lets you draw things like filled rectangles, ellipses and lines.
The library supports *any* pixel format as long as the pixel is less than or equal to 64 bits. You define what it looks like yourself.
But.
I have yet to build a "driver" portion that allows it to interface with some real display hardware.
So I've been using the library to draw lines and circles and stuff all over bitmaps, and then I'm rendering those bitmaps to "4 bit grayscale" ASCII art and rendering that to the console.
I didn't think making ascii bitmaps would be this much fun though. It's silly how much I'm enjoying "drawing" on the console screen.
This is one of those rare moments when testing made itself fun for me. I need more of these.
Edit: Here's a result - the size is necessary because ASCII - it's only 128x128 "pixels" minus a few rows i cropped:
template <typename BitmapType>
void dump_bitmap(const BitmapType& bmp) {
static const char *col_table = " .,-~;*+!=1%O@$#";
using gsc4 = pixel<channel_traits<channel_name::L,4>>;
for(int y = 0;y<bmp.dimensions().height;++y) {
for(int x = 0;x<bmp.dimensions().width;++x) {
const typename BitmapType::pixel_type px = bmp[point16(x,y)];
char sz[2];
sz[1]=0;
const auto px2 = px.template convert<gsc4>();
size_t i =px2.template channel<0>();
sz[0] = col_table[i];
printf("%s",sz);
}
printf("\r\n");
}
}
int main() {
static const size_t bit_depth = 24;
using bmp_type = bitmap<rgb_pixel<bit_depth>>;
using draw = draw<bmp_type>;
using color = color<typename bmp_type::pixel_type>;
size16 bmp_size(128,128);
uint8_t bmp_buf[bmp_type::sizeof_buffer(bmp_size)];
bmp_type bmp(bmp_size,bmp_buf);
bmp.clear(bmp.bounds()); srect16 b =srect16(spoint16(0,0),ssize16(bmp.dimensions().width,bmp.dimensions().height));
srect16 cr = b.inflate(-50,-50);
draw::filled_ellipse(bmp,cr,color::lawn_green);
draw::ellipse(bmp,cr,color::lavender_blush);
srect16 r = b.inflate(-4,0);
srect16 r2=r.inflate(-r.width()*.30,-r.height()*.30);
auto fr2 = r2.inflate(15,5);
draw::filled_rectangle(bmp,fr2,color::purple);
draw::rectangle(bmp,fr2,color::hot_pink);
draw::line(bmp,r,color::white,&r2);
draw::line(bmp,r.flip_horizontal(),color::white);
dump_bitmap(bmp);
return 0;
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$ #
%%%%%%%%%%%%%%%%%%%%%%%%%===================================================================#==========
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------------------------------------------#----------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------------------------------------------#-----------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------------------------------------------#------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------------------------------------#-------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------#----------------------------------------------#--------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------#--------------------------------------------#---------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------#-------------------------------------------#---------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------#-----------------------------------------#----------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------#---------------------------------------#-----------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------#-------------------------------------#------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------#-----------------------------------#-------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------#----------------------------------#--------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------#--------------------------------#---------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------#------------------------------#----------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------#----------------------------#-----------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------#--------------------------#------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------#------------------------#-------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------#----------------------#--------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------#--------------------#---------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------#------------------#----------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------#----------------#-----------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------------#--------------#------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------------#-------------#------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------#-----------#-------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------#----------#--------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------------#--------#---------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------------#------#----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------------#----#-----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------------------#--#------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------------------##-------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-------------------------------------##-------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=------------------------------------#--#------------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=-----------------------------------#----#-----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=----------------------------------#------#----------------------------------=
%%%%%%%%%%%%%%%%%%%%%%%%%=---------------------------------#--------#---------------------------------=
$%%%%%%%%%%%%%%%%%%%%%%%%=--------------------------------#----------#--------------------------------=
$$%%%%%%%%%%%%%%%%%%%%%%=-------------------------------#-----------#--------------------------------=
$$%%%%%%%%%%%%%%%%%%%%=------------------------------#-------------#-------------------------------=
$$%%%%%%%%%%%%%%%%%%=------------------------------#--------------#------------------------------=
$$%%%%%%%%%%%%%%%%=-----------------------------#----------------#-----------------------------=
$$$%%%%%%%%%%%%%=----------------------------#------------------#----------------------------=
$$$%%%%%%%%%%=---------------------------#--------------------#---------------------------=
$$$$$%%%%%=--------------------------#----------------------#--------------------------=
$$$$$=-------------------------#------------------------#-------------------------=
=------------------------#--------------------------#------------------------=
=-----------------------#----------------------------#-----------------------=
=----------------------#------------------------------#----------------------=
=---------------------#--------------------------------#---------------------=
=--------------------#----------------------------------#--------------------=
=-------------------#-----------------------------------#--------------------=
=------------------#-------------------------------------#-------------------=
=-----------------#---------------------------------------#------------------=
=----------------#-----------------------------------------#-----------------=
=---------------#-------------------------------------------#----------------=
=---------------#--------------------------------------------#---------------=
=--------------#----------------------------------------------#--------------=
=-------------#--------------------------------------------------------------=
=------------#---------------------------------------------------------------=
=-----------#----------------------------------------------------------------=
=----------#-----------------------------------------------------------------=
==========#===================================================================
#
#
#
Real programmers use butterflies
modified 18-Apr-21 2:07am.
|
|
|
|
|
A long time ago in a building far, far away... (not really; the old building is next door to the current one)
Aaaaanywaaay, we make commercial ink-jet printers and the smaller models originally came with built-in hand-tweaked bitmap fonts. The first printer in the product line (early 90's) could only do 120x120 dpi resolution and later 120x240 resolution, so the character bitmaps needed to be adjusted by hand. This was especially true for bar codes which could be rendered unusable due to ink spread.
Our original font "source" files were simple ASCII text, with the bitmaps drawn using period (.) and at signs (@) and were edited using MS-DOS Edit. Yes, it was that long ago (early 90's). These source files were compiled into a binary form that could be downloaded to the printer or written directly to a monstrous 4MB PCMCIA Flash memory. Good times.
Software Zen: delete this;
|
|
|
|
|
victim, brainwashed by starvation and 24/7 exposure to a playlist of Sander Rossel's favorite tunes: She did what she had to do to survive [^]; justice, in this case, is finding Her not guilty by reason of insanity.
We pray your Worships will recommend sending this Cat to a facility that will provide respite and therapy for restoring her divine Cat-nature to its usual radiant and playful state.
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
Quote: The feline felon was stopped outside the Nueva Esperanza jail
What an incongruous name for a jail.
|
|
|
|
|
Well the inmate can hope they will get out ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
You have too much time on your hands -
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
pkfox wrote: You have too much time on your hands After so much time slipped through my fingers ... i'm glad some of it sticks .., now that i am past my use-by date.
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
You and me both
"I didn't mention the bats - he'd see them soon enough" - Hunter S Thompson - RIP
|
|
|
|
|
Panama?
Leaves and vegetable matter. Guessing.. Psychotria viridis and a monoamine oxidase inhibitor.
Just guessing
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
The cat was a mule?
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
BillWoodruff wrote: 24/7 exposure to a playlist of Sander Rossel's favorite tunes Not even I would keep my sanity
|
|
|
|
|
Reminds me of the David Lynch version of Dune[^](*). The Harkonnens have Thufir Hawat hostage at one point and have injected him with a poison. He is connected to an IV that comes out of a tank containing a cat and a rat bound together in an apparatus that somehow manufactures an antidote for the poison. As long as Hawat takes care of his 'pets', he lives.
(*) Like it or hate it, you have to admire Lynch's chutzpah. He was the first to try and film the novel and visually it was pretty amazing. The acting by Everett McGill (Stilgar) and Kenneth McMillan (Baron Harkonnen) were good, and both Patrick Stewart (Gurney Hallock) and Sting (Feyd-Rautha) of all people make appearances.
Software Zen: delete this;
|
|
|
|
|
Hi, I'm a fan of Lynch, starting with Blue Velvet (1986), and I think his Dune is superior to the remakes.
Enjoyed Twin Peaks back in the day, but, tried watching it again, and stopped.
fwiw: I perceive Lynch as not having "sold his soul" to the Hollywood Borg, like Tarentine and Robert Rodriguez.
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
|
|
|
|
|
Hmmm ... car catting happens, but cat catting , this is new
|
|
|
|
|
... up to a lap dancing club in New York's web site - I sure you were only thinking of my mental health in the lockdown - but it is a little disconcerting to get emails with the subject line "Die Happy Tonight!".
I'm sure the free membership they keep offering will come in really handy should I decide to fly 3,500 miles to just look at pretty ladies who clearly need a larger clothing allowance.
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
"Common sense is so rare these days, it should be classified as a super power" - Random T-shirt
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
OriginalGriff wrote: hould I decide to fly 3,500 miles to just look at pretty ladies who clearly need a larger clothing allowance.
They'd probably deny you a visa, claiming that you were entering the United States for immoral purposes...
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows.
-- 6079 Smith W.
|
|
|
|
|
There is nothing moral about this country. We accept all kinds, clearly. 
|
|
|
|
|
Why didn't I think of doing that?
OriginalGriff wrote: to just look at pretty ladies who clearly need a larger clothing allowance. I swear, the smaller the thing is and the less fabric it uses, the more expensive it seems to be.
Had a similar argument over my new glasses; tiny piece of plastic to hold lenses, is bloody expensive due to "design". Asked him if they had any without "design". They didn't.
Bastard Programmer from Hell
"If you just follow the bacon Eddy, wherever it leads you, then you won't have to think about politics." -- Some Bell.
|
|
|
|
|
Quote: I swear, the smaller the thing is and the less fabric it uses, the more expensive it seems to be.
My dad's exact words describing "Haute Couture"
|
|
|
|
|
You're welcome. I did the hard work, you just need to book your plane tickets.
|
|
|
|
|
No need for that as you already have a laptop dancing cat 
|
|
|
|
|
OriginalGriff wrote: look at pretty ladies who clearly need a larger clothing allowance. I hope you mean more money to by clothing and not money to buy larger clothing.
Please clarify.
Ravings en masse^ |
---|
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein | "If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010 |
|
|
|
|