void display_raster(int packet, int offset, int replay) { /* only decode when not replaying from history */ if(replay == FALSE) decode_raster((short *)(sd->icd_product), offset); output_raster(); }
int main(int argc, char **argv) { int fd, page, fd_tiff, ret; struct urf_file_header head, head_orig; struct urf_page_header page_header, page_header_orig; struct tiff_info tiff; if(argc < 3) { fprintf(stderr, "Usage: %s <input.urf> <output.tiff>\n", argv[0]); return 1; } if((fd = open(argv[1], O_RDONLY)) == -1) die("Unable to open unirast file"); lseek(fd, 0, SEEK_SET); if(read(fd, &head_orig, sizeof(head)) == -1) die("Unable to read file header"); //Transform memcpy(head.unirast, head_orig.unirast, sizeof(head.unirast)); head.page_count = ntohl(head_orig.page_count); if(head.unirast[7]) head.unirast[7] = 0; if(strncmp(head.unirast, "UNIRAST", 7) != 0) die("Bad File Header"); iprintf("%s file, with %d page(s).\n", head.unirast, head.page_count); if(create_tiff_file(&tiff, argv[2], head.page_count) != 0) die("Unable to create TIFF file"); for(page = 0 ; page < head.page_count ; ++page) { if(read(fd, &page_header_orig, sizeof(page_header_orig)) == -1) die("Unable to read page header"); //Transform page_header.bpp = page_header_orig.bpp; page_header.colorspace = page_header_orig.colorspace; page_header.duplex = page_header_orig.duplex; page_header.quality = page_header_orig.quality; page_header.unknown0 = 0; page_header.unknown1 = 0; page_header.width = ntohl(page_header_orig.width); page_header.height = ntohl(page_header_orig.height); page_header.dot_per_inch = ntohl(page_header_orig.dot_per_inch); page_header.unknown2 = 0; page_header.unknown3 = 0; iprintf("Page %d :\n", page); iprintf("Bits Per Pixel : %d\n", page_header.bpp); iprintf("Colorspace : %d\n", page_header.colorspace); iprintf("Duplex Mode : %d\n", page_header.duplex); iprintf("Quality : %d\n", page_header.quality); iprintf("Size : %dx%d pixels\n", page_header.width, page_header.height); iprintf("Dots per Inches : %d\n", page_header.dot_per_inch); if(add_tiff_page(&tiff, page, page_header.width, page_header.height, page_header.bpp, page_header.dot_per_inch) != 0) die("Unable to create TIFF file"); decode_raster(fd, page_header.width, page_header.height, page_header.bpp, &tiff); } close_tiff_file(&tiff); return 0; }
int main(int argc, char **argv) { int fd, page; struct urf_file_header head, head_orig; struct urf_page_header page_header, page_header_orig; struct pdf_info pdf; FILE * input = NULL; if(argc < 6) { fprintf(stderr, "Usage: %s <job> <user> <job name> <copies> <option> [file]\n", argv[0]); return 1; } if(argc > 6) { input = fopen(argv[6], "rb"); if(input == NULL) die("Unable to open unirast file"); } else input = stdin; // Get fd from file fd = fileno(input); if(read(fd, &head_orig, sizeof(head)) == -1) die("Unable to read file header"); //Transform memcpy(head.unirast, head_orig.unirast, sizeof(head.unirast)); head.page_count = ntohl(head_orig.page_count); if(head.unirast[7]) head.unirast[7] = 0; if(strncmp(head.unirast, "UNIRAST", 7) != 0) die("Bad File Header"); iprintf("%s file, with %d page(s).\n", head.unirast, head.page_count); if(create_pdf_file(&pdf, head.page_count) != 0) die("Unable to create PDF file"); for(page = 0 ; page < (int)head.page_count ; ++page) { if(read(fd, &page_header_orig, sizeof(page_header_orig)) == -1) die("Unable to read page header"); //Transform page_header.bpp = page_header_orig.bpp; page_header.colorspace = page_header_orig.colorspace; page_header.duplex = page_header_orig.duplex; page_header.quality = page_header_orig.quality; page_header.unknown0 = 0; page_header.unknown1 = 0; page_header.width = ntohl(page_header_orig.width); page_header.height = ntohl(page_header_orig.height); page_header.dot_per_inch = ntohl(page_header_orig.dot_per_inch); page_header.unknown2 = 0; page_header.unknown3 = 0; iprintf("Page %d :\n", page); iprintf("Bits Per Pixel : %d\n", page_header.bpp); iprintf("Colorspace : %d\n", page_header.colorspace); iprintf("Duplex Mode : %d\n", page_header.duplex); iprintf("Quality : %d\n", page_header.quality); iprintf("Size : %dx%d pixels\n", page_header.width, page_header.height); iprintf("Dots per Inches : %d\n", page_header.dot_per_inch); if(page_header.colorspace != UNIRAST_COLOR_SPACE_SRGB_24BIT_1) { die("Invalid ColorSpace, only RGB 24BIT type 1 is supported"); } if(page_header.bpp != UNIRAST_BPP_24BIT) { die("Invalid Bit Per Pixel value, only 24bit is supported"); } if(add_pdf_page(&pdf, page, page_header.width, page_header.height, page_header.bpp, page_header.dot_per_inch) != 0) die("Unable to create PDF file"); if(decode_raster(fd, page_header.width, page_header.height, page_header.bpp, &pdf) != 0) die("Failed to decode Page"); } close_pdf_file(&pdf); // will output to stdout return 0; }