From 22f466c22ecf49a942b453aadbebc0548fe75232 Mon Sep 17 00:00:00 2001 From: Griffin Della Grotte Date: Fri, 30 Jun 2017 23:40:53 -0400 Subject: [PATCH] First testing of image printing looks good --- DirectPrint/Makefile | 2 +- DirectPrint/printimg | Bin 14016 -> 64080 bytes DirectPrint/printimg.cpp | 111 +++++++++++++++++++++++++++++---------- 3 files changed, 85 insertions(+), 28 deletions(-) diff --git a/DirectPrint/Makefile b/DirectPrint/Makefile index eeab8ac..ff9c537 100644 --- a/DirectPrint/Makefile +++ b/DirectPrint/Makefile @@ -1,3 +1,3 @@ all: g++ printtxt.cpp -o printtxt - g++ printimg.cpp -o printimg + g++ printimg.cpp -o printimg `pkg-config --cflags --libs opencv` diff --git a/DirectPrint/printimg b/DirectPrint/printimg index 0df54a65999d3b6848a5ed024c9661bcc1b22bf3..cbfab2627aae4b453462e1ee3fbb0ef07e391ad9 100755 GIT binary patch literal 64080 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 Ao&W#< diff --git a/DirectPrint/printimg.cpp b/DirectPrint/printimg.cpp index 8101199..0b87dad 100644 --- a/DirectPrint/printimg.cpp +++ b/DirectPrint/printimg.cpp @@ -1,3 +1,8 @@ +#include +#include +#include +#include + #include #include #include @@ -6,11 +11,18 @@ #include #include +#define CHAR_HEIGHT 8 +#define DOT_WIDTH 720 +#define HW_RATIO 1.35 /* * In fast draft mode, set line spacing to 16/144 * The resulting dot ratio is height:width of 1.38:1 */ +using namespace cv; +using namespace std; + +// Serial Functions // Function credit: wallyk & RicoRico int set_interface_attribs (int fd, int speed, int parity) { struct termios tty; @@ -80,10 +92,7 @@ int init_port(char *portname){ return fd; } -void send_line(int iw, char *line, size_t len){ - write(iw, strcat(line, "\n\r"), len+2); -} - +// Print Functions void print_buffer(int iw, char *buf, size_t len){ char seg[250]; @@ -101,31 +110,12 @@ void print_buffer(int iw, char *buf, size_t len){ write(iw, "\n\r", 2); } -char * read_text(char * filename){ - char * filebuf = (char*)calloc(sizeof(char),4000); - char line[92]; - printf("Reading file %s...\n", filename); - FILE *fp = fopen(filename, "r"); // do not use "rb" - - size_t i = 0; - while (fgets(line, sizeof(line)-2, fp)) { - //printf(line); - if (strlen(line) >= 89) strcat(line, "\n"); - strcat(filebuf, line); - printf(filebuf); - } - - fclose(fp); - printf("Done! closing file read\n"); - return filebuf; -} - void init_text(int iw){ char std_sp[4] = {27, 'A'}; write(iw, std_sp, 4); } -void init_graphics(int iw, int bytes){ +void init_graphics(int iw, int bytes, int start){ if (bytes > 1500) printf("Too many bytes for one section!"); char gr_sp[4] = {27, 'T', '1', '6'}; @@ -136,16 +126,83 @@ void init_graphics(int iw, int bytes){ char cmd[6] = {27, 71, 0, 0, 0, 0}; memcpy(cmd+2, num, 4); write(iw, cmd, 6); + + //sprintf(num, "%04d", start); + //cmd[1] = 70; + //memcpy(cmd+2, num, 4); + //write(iw, cmd, 6); } + +//OpenCV Functions +Mat load_img(char * filename){ + Mat image; + image = imread(filename, CV_LOAD_IMAGE_COLOR); // Read the file + + if(! image.data ) // Check for invalid input + { + cout << "Could not open or find the image" << std::endl ; + } + + return image; +} + +void print_section(int iw, Mat sec){ + if (sec.rows > CHAR_HEIGHT) { + printf("Malformed image section\n"); + return; + } + + char *line = (char*)calloc(sizeof(char), sec.cols); + + init_graphics(iw, sec.cols, 0); + for (int i = 0; i < sec.cols; i++){ + for (int j = 0; j < CHAR_HEIGHT; j++){ + if (j >= sec.rows) continue; + Scalar x = sec.at(j, i); + line[i] |= (x.val[0] < 127) << j; + } + } + + write(iw, line, sec.cols); + free(line); +} + +void print_img(int iw, Mat img){ + int rows = img.rows; + int cols = img.cols; + + write(iw, "\n\r", 2); + for (size_t row = 0; row < rows; row += CHAR_HEIGHT){ + int h = (row+CHAR_HEIGHT>rows)?(rows-row):CHAR_HEIGHT; + Rect roi(0, row, cols, h); + Mat section = img(roi); + print_section(iw, section); + write(iw, "\n\r", 2); + } +} + int main(int argc, char *argv[]){ - //if (argc != 2) printf("Please execute with filename of text file\n"); + if (argc != 2) printf("Please execute with filename of text file\n"); char txt[40]; char *portname = "/dev/ttyS0"; int iw = init_port(portname); - int linelength = 128; + Mat image = load_img(argv[1]); + float pg_factor = 0.25; + float xScale = (pg_factor * DOT_WIDTH) / ((float)image.cols); + float yScale = xScale / HW_RATIO; + resize(image, image, Size(), xScale, yScale); + cvtColor(image, image, COLOR_RGB2GRAY); + threshold(image, image, 127, 255, THRESH_BINARY); + print_img(iw, image); + + //namedWindow( "Display window", WINDOW_AUTOSIZE );// Create a window for display. + //imshow( "Display window", image ); // Show our image inside it. + //waitKey(0); // Wait for a keystroke in the window + + /*int linelength = 128; for(int foo = 0; foo < 16; foo++){ init_graphics(iw, linelength); char s[1] = {0}; @@ -167,6 +224,6 @@ int main(int argc, char *argv[]){ // receive 25: approx 100 uS per char transmit //char buf [100]; //int n = read (fd, buf, sizeof buf); // read up to 100 characters if ready to read - +*/ return 0; }