From aa1b4419a77d685413fbb28ccde380737d8ee883 Mon Sep 17 00:00:00 2001 From: Matteo Paonessa Date: Sat, 9 May 2015 16:27:24 +0200 Subject: [PATCH] Second commit --- bin/cclt | Bin 13096 -> 13072 bytes compress.c | 70 ++++++++++++++++++++++++++--------------------------- main.c | 28 ++++++++++----------- 3 files changed, 49 insertions(+), 49 deletions(-) diff --git a/bin/cclt b/bin/cclt index 780ae6cea4e73c97dd9cc84fd46a688625fd5308..f118651c26ab798b4d6aae69b5c97b45a8de6e03 100755 GIT binary patch delta 2618 zcmY+G3rtgI6vyvv1zKp~mO^g}*p`cNw{pdl}!{)oJ=>=MF*4V=4%B3 zmr5ALgPB>j1a*nq;xd&jBZ~v7PU7MgSfVk}EzL5QR?)$-%?fCD&es;YFX21={m8&Rgf5$9ucxpL8zNbF9TI$C(-P*eBwjJ?gjXYndLif}9~&0~%iJ8qP=J!<5U5@Kvk8ZQV++e>F^7x%TV>lsTrV75e=EK1)&{_ z^XlL!^ons_F1wZy?Svk-r-*O`D++OHHhhfg6sqPpbvFEn>fFM zrx|}vJd3!8@o{ALmIM;KO!$xj=t2dX7#}941qK@!A0k!|*D^jptR!|Z-b0*B>|nfu zIEC2C_;q3xv6=Bkwb{*WQIjArVI2je5_61SBu*n9dxS#av%~_ipYd{H4e>DJCB*5( zgN#dvwZx|x7ZGO=_b|>=yHTJ+4|JCet;ZdKL)pw$gRInN3A%<{p7Ef zn(wg!zDIHieomduOE8vd!#*#qGw~>nJkSH*r0wHxz(T<+3uVG;!Omwvr;r2R3x>q@ z>gyht9)1;a66fJNByi@iCR?`j5hQ7go?nB48J9f`6l7Hi~`kG96vI6^91b8SSl-+fWC~! z>~Bo#>Y0L+SIp*s%fa90A57OJJb?%WnmMwq6Huu!Y92)0WYE0?2hbRG$yBes?I^1K zjnO@Nass~8=-oS~2Q5KwAKm+)1t%O`vukF}$0MalnO;%SQ3EqN{t%uM!R2;AxO+}l`sbpUso z4H!9{U8Kg8p}=O!p25IK1(cEC817*eBeVMnBiTV+zK~{W!b9YoYn-c{p0Kmp zxvH|GP?sk+<9+T}phNpoh3DT2&sE!v%K5jXmQjV|dnga6??YAQAMmu!3LUx}sMi@K ztior@my)G-+0B2#;cm3&aI9C+p2hLcpTF<1)0PFs_@+ zyTBk?cn4I7b93)ug+p}JoT3uMxEX4?q|;FfSuE-k zlsDtK-Tq&dTdc|o^j*Y1JB*9v3AK0$WH7>O!KHU;TJfQ!MsFf&b~vLq;jBjVZr%=6 zhA{8yt;+fU|Cs}C%#^2bUbG_L4K^eV=SM4I;44U4&Vg3Mw*gTm=YlRIEBKH^EbL>E z`8XJo@aog$}8@Kgd znzLNNmw?h@QO5SP6`Yn*jW@c(-sl$s4<3w}`G)dYN|kx0WhnOS6L$DYgv` zXhxEvn<9bFS_*cn01BH`X^nnxSixz-{3zL>nFwFp)bIdoPveUC66&4U*F!V*?|={c J>%c!T_df{{ix~g_ delta 2719 zcmY+Gdu&s66vuzR7Dl_Z>+K$Wut(cLH#UT>C>c}K7QtP}AXS-84bt%##Q+-&oexOS ziC7mx^*{m`vX?M7SowMNJBeIHcswKv+BxH6V8r(g~)?$AqG)$0Q@x0*xg*pMwK#nJho@atSg(khkApWn3iwuBcLqT3O7)FFH6mV*{GK08jM@BR2{5EwGq{QS!ynPhUywr zk7lU`_!ZS2RKLkm^TC*BgT zNl^TtJzC&9^jcMi7;RZz8{Ef?XE5WqEVTqC7_4wF&tRXDrIuyo@PW%TYVs9yrQ8EJnjAj-MI0h$;!+AP_fN!}_(-+zW^$;!A>GAT|?!FZgNV z0^;L>XAu_?9}+x`xQI9=_+euh1-ki(s1PPm0KFiIb%JY%>Gmhu1y>N;h=YPh6WfUc zf(wX86Z-_`5|M4EK@0 zNq*~=NO0mGtqkY#%Xkn5^SwA$m^S6?!^-`K;D~7rzYY&cPL0k2&q`Bx4Q!H1Elq=R z_l%?*`MSRjj}K8RGQ;MQP}}Eq!N7vN7e`KquD6T zu_!*NeF0i}B(D5%S2$ur6c$$=RKuC7k~t=4hil2-y?!f(_qAb7n&T03aB*F0lkAl- zX*Vr(r6o7B*70}YOkuhEBQ-HCr;lDBnt$X!jZnD@rlOKLZ{DFwGX~|z3`N~~T-hMB z^--$covz+Rvm@En$*oq;6c68l*NVmk7mMjl3N}J)Fmj&iwUL@p;!03mjT#VFE>kkK zaTKgkgGD&q?IPFkx@zR^kzSpX$=zEnV7vOFYLt2(FJO&+ z>V|SqO+P3)ik-a!Z<)(AsUg^DF48%uQ zx_fd6W*3Y#e1ZklYF$ZKTkwdcG6}~D#;@2ttegHzNV#e$mw4pj%BjDHYmsXY;Gb2BGe{QV4DtFz`$tUh>mHW5BU;NuB zcgF+nj$8(n7H@bJd$MKevc-#>tJ|Dy?Tc49TalaZTFVRlHj{bu74Yc>rF2dH9VsBRCTQZg7 z89e|OEmeF9aI1%p1FyBpbskfEOzrdMOYdr)Fy?5tal4*q92x1x3}?}4D9dz|PT^lIT(mauW^mb-m^b6APZynMbOm6W&4IozY+)XN zdV7k8z*}Ajm-vX@!02`OX#i)-tUQKeu~uR|z{{;XiDR+004IBqnsF@F7O^0-Akp+< zt%b?(0a5_RVyz7$Pn37!=~M6M#Q4Jw4|*;;I_JuHg^PDA!7-2P1bnt@g~P zO(sU7Rxql57QKP=|M`r!9=!$3$fCeq^RY^ct3gv~h6ApNSpK4`0XO8T2%AOMan5<{ zo5W~=hbubm%_YH19${zWT{ANii-CVk19w7X%qGlYAKSnOpk-{oMk<5~Hzw|V$~~J) z%i20RmM!k+n7EKFY+K&Gs`p^!G##G?zfbh&GkxC-)t)+YEPWSZ>2DG}tn_&FSzl|O zI(-sf7rK&=KnkS4?*dR=Tc>YMQ!^|@3Z^Lt`;jv33PA!%PPa#fYAE c{ocoMUkNc*PkNkhfTcJ_VLy(8keF2UFR|XEEC2ui diff --git a/compress.c b/compress.c index 955cae6..4747e21 100755 --- a/compress.c +++ b/compress.c @@ -7,58 +7,58 @@ void cclt_compress(char* output_file, unsigned char* image_buffer) { - struct jpeg_compress_struct cinfo; + struct jpeg_compress_struct cinfo; - struct jpeg_error_mgr jerr; - FILE * outfile; - JSAMPROW row_pointer[1]; /* pointer to JSAMPLE row[s] */ - int row_stride; /* physical row width in image buffer */ + struct jpeg_error_mgr jerr; + FILE * outfile; + JSAMPROW row_pointer[1]; + int row_stride; - if ((outfile = fopen(output_file, "wb")) == NULL) { - fprintf(stderr, "can't open %s\n", output_file); - exit(1); - } + if ((outfile = fopen(output_file, "wb")) == NULL) { + fprintf(stderr, "can't open %s\n", output_file); + exit(1); + } - cinfo.err = jpeg_std_error(&jerr); + cinfo.err = jpeg_std_error(&jerr); - jpeg_create_compress(&cinfo); - jpeg_stdio_dest(&cinfo, outfile); + jpeg_create_compress(&cinfo); + jpeg_stdio_dest(&cinfo, outfile); - cinfo.image_width = 80; - cinfo.image_height = 80; - cinfo.input_components = 3; - cinfo.in_color_space = JCS_RGB; + cinfo.image_width = 80; + cinfo.image_height = 80; + cinfo.input_components = 3; + cinfo.in_color_space = JCS_RGB; - jpeg_set_defaults(&cinfo); + jpeg_set_defaults(&cinfo); - cinfo.dct_method = JDCT_FLOAT; - cinfo.optimize_coding = TRUE; - cinfo.smoothing_factor = 50; - jpeg_set_quality(&cinfo, 80, TRUE ); - jpeg_set_colorspace(&cinfo, JCS_RGB); + cinfo.dct_method = JDCT_FLOAT; + cinfo.optimize_coding = TRUE; + cinfo.smoothing_factor = 50; + jpeg_set_quality(&cinfo, 80, TRUE ); + jpeg_set_colorspace(&cinfo, JCS_RGB); - - jpeg_start_compress(&cinfo, TRUE); + + jpeg_start_compress(&cinfo, TRUE); //TODO cambia - row_stride = 80 * 3;//image_width * 3; + row_stride = 80 * 3;//image_width * 3; - while (cinfo.next_scanline < cinfo.image_height) { - - printf("%d%\r", cinfo.next_scanline * 100 / cinfo.image_height); + while (cinfo.next_scanline < cinfo.image_height) { - row_pointer[0] = &image_buffer[cinfo.next_scanline * row_stride]; - (void) jpeg_write_scanlines(&cinfo, row_pointer, 1); - } - printf("%d%\n", cinfo.next_scanline * 100 / cinfo.image_height); + printf("%d%\r", cinfo.next_scanline * 100 / cinfo.image_height); + + row_pointer[0] = &image_buffer[cinfo.next_scanline * row_stride]; + (void) jpeg_write_scanlines(&cinfo, row_pointer, 1); + } + printf("%d%\n", cinfo.next_scanline * 100 / cinfo.image_height); - jpeg_finish_compress(&cinfo); - fclose(outfile); + jpeg_finish_compress(&cinfo); + fclose(outfile); - jpeg_destroy_compress(&cinfo); + jpeg_destroy_compress(&cinfo); } diff --git a/main.c b/main.c index 6cf7b06..de7550c 100755 --- a/main.c +++ b/main.c @@ -15,10 +15,10 @@ -o output file -v version -l lossless - -s + -s scale -h help -R recursive - + */ cclt_compress_parameters parse_arguments(int argc, char* argv[]) { @@ -36,16 +36,16 @@ cclt_compress_parameters parse_arguments(int argc, char* argv[]) { break; case '?': if (optopt == 'q' || optopt == 'e' || optopt == 'o' || optopt == 's') { - //fprintf (stderr, "Option -%c requires an argument.\n", optopt); - //Arguments without values - exit(-1); + //fprintf (stderr, "Option -%c requires an argument.\n", optopt); + //Arguments without values + exit(-1); } - else if (isprint(optopt)) { - fprintf (stderr, "Unknown option `-%c'.\n", optopt); - } - else { + else if (isprint(optopt)) { + fprintf (stderr, "Unknown option `-%c'.\n", optopt); + } + else { fprintf (stderr, "Unknown option character `\\x%x'.\n", optopt); - } + } break; case 'q': qvalue = optarg; @@ -54,15 +54,15 @@ cclt_compress_parameters parse_arguments(int argc, char* argv[]) { evalue = optarg; break; default: - abort(); + abort(); } } - + return parameters; } int main (int argc, char *argv[]) { - + cclt_compress_parameters parameters; //Check if there's at least one argument @@ -70,7 +70,7 @@ int main (int argc, char *argv[]) { printf("CCLT requires at least one argument. Aborting.\n"); return -1; } - + parameters = parse_arguments(argc, argv); return 0;