TIP: Click on subject to list as thread! ANSI
echo: c_plusplus
to: TEEMU FRISK
from: KURT KUZBA
date: 1997-06-29 05:39:00
subject: ANSI pictures

TF>   In which way I can put some ANSI graphics to the video
TF>   buffer or directly to the screen? Thanks a Lot.
   Assuming you already have a file, such as produced by TheDraw
   in which the ANSI picture is codified as a binary image in an
   array of type unsigned char:
/*_|_|   ANSBIN.CPP
_|_|_|   A simple C++ class for handling ANSI picture data.
_|_|_|   No warrantee or guarantee given or implied.
_|_|_|   PUBLIC DOMAIN   by Kurt Kuzba.  (6/29/1997)*/
#include 
#include 
class AnsiImage {
public:
   AnsiImage(char*, int, int);
   void display(int, int);
private:
   char *pic;
   int high, wide;
};
AnsiImage::AnsiImage(char *image, int h = 25, int w = 80)
{
   pic = image;
   high = h;
   wide = w;
}
void AnsiImage::display(int left, int top)
{
   short *Dst = (short*)0xb8000000l;
   short *Src = (short*)pic;
   int Ln, bytewidth = wide << 1, incD = 80;
   Dst += ((80 * (--top)) + (--left));
   for(Ln = 0; Ln < high; Ln++)
      memmove(Dst, Src, bytewidth), Dst += incD, Src += wide;
}
char *Sttng(void)
{
   unsigned char *STTNG = {
   " \x0F \x0F.\x0E \x0Fú\x04 \x0F \x0F \x0F.\x0E \x0F \x0F \x0F \x0F"
   "ú\x02 \x0F \x0F \x0F \x0F \x0F \x0Fß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
   "ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70 \x0F \x0Fú\x0E \x0F"
   " \x0F \x0F \x0F \x0F \x0F \x0F \x0F \x0F \x0F.\x0E \x0F \x0F \x0F"
   " \x0Fú\x0D \x0Fú\x04 \x0F \x0Fß\x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
   " \x70ú\x7E \x70 \x70 \x70ú\x7E \x70 \x70 \x70 \x70ú\x7E \x70 \x70"
   " \x70ú\x7E \x70 \x70ú\x7E \x70ú\x7Eú\x7E \x70 \x70 \x70:\x7E \x70"
   " \x70 \x70ú\x7Eú\x7E \x70 \x70 \x70 \x70 \x70 \x70ú\x7Eß\x70ß\x70"
   "ß\x70ß\x70ß\x70ß\x70ß\x70 \x0F \x0F \x0FÜ\x70Ü\x70Ü\x70Ü\x70Ü\x70"
   "Ü\x70ú\x7E \x70 \x70ú\x7E \x70ú\x7E:\x7E \x70ú\x7Eú\x7E \x70 \x70"
   " \x70 \x70 \x70á\x73ç\x73à\x73s\x73s\x73:\x7E \x70ú\x7E \x70 \x70"
   "ú\x7Eú\x7E \x70 \x70 \x70 \x70ú\x7E \x70 \x70:\x7E \x70ú\x7Eú\x7E"
   "ú\x7E \x70 \x70 \x70ú\x7EÜ\x70Ü\x70Ü\x70Ü\x70Ü\x70Ü\x70 \x0F \x0F"
   ".\x0E \x0F \x0Fú\x0C \x0F \x0F \x0F \x0Fß\x70Ä\x70Ä\x70Ä\x70Ä\x70"
   "Ä\x70Ä\x70¿\x70 \x70ú\x7E \x70:\x7E \x70ú\x7Eé\x73ç\x73‡\x73h\x73"
   "­\x73ë\x73 \x70 \x70ú\x7E \x70ú\x7Eú\x7E \x70:\x7E \x70Ú\x70Ä\x70"
   "Ä\x70Ä\x70Ä\x70Ä\x70Ä\x70ß\x70 \x0F \x0F \x0F \x0F \x0F \x0Fú\x0C"
   " \x0F \x0Fú\x0Eú\x04 \x0F \x0F \x0F \x0F \x0F.\x0A \x0F \x0FÛ\x09"
   "Û\x09Û\x09Û\x09Û\x09Û\x09Û\x09Þ\x70Ü\x70Ü\x70Ü\x70 \x70:\x7E \x70"
   "ú\x7Eú\x7Eú\x7Eú\x7E \x70 \x70ú\x7Eú\x7Eú\x7Eú\x7E \x70 \x70Ü\x70"
   "Ü\x70Ü\x70Ý\x70Û\x09Û\x09Û\x09Û\x09Û\x09Û\x09Û\x09 \x0F \x0F \x0F"
   "ú\x03 \x0F \x0F \x0F.\x01 \x0F \x0Fú\x0E \x0F \x0Fú\x0D \x0F \x0F"
   " \x0F.\x0E \x0FÜ\x70Ü\x70Ü\x70Ü\x70Ü\x70Ü\x70 \x70Þ\x70ú\x0C \x0F"
   "ú\x03 \x0F.\x0DÜ\x70Ü\x70 \x70ú\x7E \x70ú\x7E \x70 \x70ú\x7EÜ\x70"
   "Ü\x70 \x0F.\x01 \x0Fú\x03 \x0FÝ\x70 \x70Ü\x70Ü\x70Ü\x70Ü\x70Ü\x70"
   "Ü\x70ú\x0C \x0F \x0F \x0F \x0Fú\x0C \x0F \x0Fú\x0E \x0F \x0F \x0F"
   "ú\x03 \x0F.\x01 \x0F \x0F \x0F \x0F \x0Fú\x0E \x0F \x0Fú\x03 \x0F"
   "Ý\x70 \x70 \x0F.\x0E \x0Fú\x04 \x0F.\x01 \x0FÝ\x70Ü\x7CÜ\x7CÜ\x7C"
   "Ü\x7CÜ\x7CÞ\x70ú\x0E.\x0D \x0F \x0Fú\x0C \x0F \x0F \x70Þ\x70 \x0F"
   " \x0Fú\x03 \x0F \x0F \x0F.\x0D \x0Fú\x0E \x0F \x0F \x0F \x0F.\x0E"
   " \x0Fú\x0D \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C \x0C"
   " \x0C \x0F \x0Fú\x04 \x0FÜ\x70 \x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
   " \x70 \x70 \x70 \x70 \x70 \x70 \x70ß\x70ß\x70ß\x70ß\x70ß\x70ß\x70"
   " \x70Ü\x70 \x0F \x0F.\x01 \x0F \x0F.\x0E \x0F \x0F \x0F \x0Fú\x04"
   " \x0F \x0F.\x03 \x0F \x0F \x0F"};
   return (char*)STTNG;
}
int main(void)
{
   char a;
   AnsiImage MyPic(Sttng(), 8, 56);
   MyPic.display(10, 3);
   cin >> a;
   return 0;
}
> ] Sorry.  I left my taglines in my other offline reader.......
---
---------------
* Origin: *YOPS ]I[* 3.1 GIG * RA/FD/FE RADist * Milwaukee, WI (1:154/750)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.