diff --git a/bob/io/image/cpp/pnmio.cpp b/bob/io/image/cpp/pnmio.cpp index 0b43defdd23b626c11ecc9dbc18b3669939976ec..6b55ab7b1b967ad670f2258789c75ccd664f8769 100644 --- a/bob/io/image/cpp/pnmio.cpp +++ b/bob/io/image/cpp/pnmio.cpp @@ -34,6 +34,25 @@ #define RGB_TYPE 1 /* used for PFM */ +/* line_start + * Tells if a line should be ignored (completely empty or contains a comment) + * Returns: non-null if we should start reading from that position. + */ +static char* line_start (char* line) { + char* start = line; + int size = strnlen(line, MAXLINE); + for (int i = 0; i < size; ++i, ++start) { + if (isspace(*start)) continue; + if (isgraph(*start)) { + if ((*start) == '#') start = NULL; + break; + } + } + if (start == (line+size)) start = NULL; /* end-of-line ignore it */ + return start; +} + + /* get_pnm_type: * Read the header contents of a PBM/PGM/PPM/PFM file up to the point of * extracting its type. Valid types for a PNM image are as follows: @@ -51,26 +70,16 @@ */ int get_pnm_type(FILE *f) { - int flag=0; int pnm_type=0; - unsigned int i; char magic[MAXLINE]; char line[MAXLINE]; /* Read the PNM/PFM file header. */ while (fgets(line, MAXLINE, f) != NULL) { - flag = 0; - for (i = 0; i < strlen(line); i++) { - if (isgraph(line[i])) { - if ((line[i] == '#') && (flag == 0)) { - flag = 1; - } - } - } - if (flag == 0) { - sscanf(line, "%s", magic); - break; - } + char* start = line_start(line); + if (!start) continue; /* skip this line */ + sscanf(line, "%s", magic); + break; } /* NOTE: This part can be written more succinctly, however, @@ -101,6 +110,7 @@ int get_pnm_type(FILE *f) return (pnm_type); } + /* read_pbm_header: * Read the header contents of a PBM (Portable Binary Map) file. * An ASCII PBM image file follows the format: @@ -114,35 +124,23 @@ int get_pnm_type(FILE *f) */ int read_pbm_header(FILE *f, int *img_xdim, int *img_ydim, int *is_ascii) { - int flag=0; int x_val, y_val; - unsigned int i; char magic[MAXLINE]; char line[MAXLINE]; int count=0; /* Read the PBM file header. */ while (fgets(line, MAXLINE, f) != NULL) { - flag = 0; - for (i = 0; i < strlen(line); i++) { - if (isgraph(line[i])) { - if ((line[i] == '#') && (flag == 0)) { - flag = 1; - } - } - } - if (flag == 0) { - if (count == 0) { - count += sscanf(line, "%s %d %d", magic, &x_val, &y_val); - } else if (count == 1) { - count += sscanf(line, "%d %d", &x_val, &y_val); - } else if (count == 2) { - count += sscanf(line, "%d", &y_val); - } - } - if (count == 3) { - break; + char* start = line_start(line); + if (!start) continue; /* skip this line */ + if (count == 0) { + count += sscanf(start, "%s %d %d", magic, &x_val, &y_val); + } else if (count == 1) { + count += sscanf(start, "%d %d", &x_val, &y_val); + } else if (count == 2) { + count += sscanf(start, "%d", &y_val); } + if (count == 3) break; } if (strcmp(magic, "P1") == 0) { @@ -176,37 +174,26 @@ int read_pbm_header(FILE *f, int *img_xdim, int *img_ydim, int *is_ascii) */ int read_pgm_header(FILE *f, int *img_xdim, int *img_ydim, int *img_colors, int *is_ascii) { - int flag=0; int x_val, y_val, maxcolors_val; - unsigned int i; char magic[MAXLINE]; char line[MAXLINE]; int count=0; /* Read the PGM file header. */ while (fgets(line, MAXLINE, f) != NULL) { - flag = 0; - for (i = 0; i < strlen(line); i++) { - if (isgraph(line[i]) && (flag == 0)) { - if ((line[i] == '#') && (flag == 0)) { - flag = 1; - } - } - } - if (flag == 0) { - if (count == 0) { - count += sscanf(line, "%s %d %d %d", magic, &x_val, &y_val, &maxcolors_val); - } else if (count == 1) { - count += sscanf(line, "%d %d %d", &x_val, &y_val, &maxcolors_val); - } else if (count == 2) { - count += sscanf(line, "%d %d", &y_val, &maxcolors_val); - } else if (count == 3) { - count += sscanf(line, "%d", &maxcolors_val); - } - } - if (count == 4) { - break; + char* start = line_start(line); + if (!start) continue; /* skip this line */ + if (count == 0) { + count += sscanf(start, "%s %d %d %d", magic, &x_val, &y_val, + &maxcolors_val); + } else if (count == 1) { + count += sscanf(start, "%d %d %d", &x_val, &y_val, &maxcolors_val); + } else if (count == 2) { + count += sscanf(start, "%d %d", &y_val, &maxcolors_val); + } else if (count == 3) { + count += sscanf(start, "%d", &maxcolors_val); } + if (count == 4) break; } if (strcmp(magic, "P2") == 0) { @@ -241,37 +228,26 @@ int read_pgm_header(FILE *f, int *img_xdim, int *img_ydim, int *img_colors, int */ int read_ppm_header(FILE *f, int *img_xdim, int *img_ydim, int *img_colors, int *is_ascii) { - int flag=0; int x_val, y_val, maxcolors_val; - unsigned int i; char magic[MAXLINE]; char line[MAXLINE]; int count=0; /* Read the PPM file header. */ while (fgets(line, MAXLINE, f) != NULL) { - flag = 0; - for (i = 0; i < strlen(line); i++) { - if (isgraph(line[i]) && (flag == 0)) { - if ((line[i] == '#') && (flag == 0)) { - flag = 1; - } - } - } - if (flag == 0) { - if (count == 0) { - count += sscanf(line, "%s %d %d %d", magic, &x_val, &y_val, &maxcolors_val); - } else if (count == 1) { - count += sscanf(line, "%d %d %d", &x_val, &y_val, &maxcolors_val); - } else if (count == 2) { - count += sscanf(line, "%d %d", &y_val, &maxcolors_val); - } else if (count == 3) { - count += sscanf(line, "%d", &maxcolors_val); - } - } - if (count == 4) { - break; + char* start = line_start(line); + if (!start) continue; /* skip this line */ + if (count == 0) { + count += sscanf(start, "%s %d %d %d", magic, &x_val, &y_val, + &maxcolors_val); + } else if (count == 1) { + count += sscanf(start, "%d %d %d", &x_val, &y_val, &maxcolors_val); + } else if (count == 2) { + count += sscanf(start, "%d %d", &y_val, &maxcolors_val); + } else if (count == 3) { + count += sscanf(start, "%d", &maxcolors_val); } + if (count == 4) break; } if (strcmp(magic, "P3") == 0) { @@ -433,7 +409,7 @@ int write_pbm_file(FILE *f, int *img_out, fprintf(f, "%d %d\n", x_scaled_size, y_scaled_size); /* Write the image data. */ - for (i = 0; i < y_scaled_size; i++) { + for (i = 0; i < y_scaled_size; ++i) { for (j = 0; j < x_scaled_size; j+=step) { if (is_ascii == 1) { fprintf(f, "%d ", img_out[i*x_scaled_size+j]); @@ -485,8 +461,8 @@ int write_pgm_file(FILE *f, int *img_out, fprintf(f, "%d\n", img_colors); /* Write the image data. */ - for (i = 0; i < y_scaled_size; i++) { - for (j = 0; j < x_scaled_size; j++) { + for (i = 0; i < y_scaled_size; ++i) { + for (j = 0; j < x_scaled_size; ++j) { if (is_ascii == 1) { fprintf(f, "%d ", img_out[i*x_scaled_size+j]); if (((i*x_scaled_size+j) % linevals) == (linevals-1)) { @@ -531,8 +507,8 @@ int write_ppm_file(FILE *f, int *img_out, fprintf(f, "%d\n", img_colors); /* Write the image data. */ - for (i = 0; i < y_scaled_size; i++) { - for (j = 0; j < x_scaled_size; j++) { + for (i = 0; i < y_scaled_size; ++i) { + for (j = 0; j < x_scaled_size; ++j) { if (is_ascii == 1) { fprintf(f, "%d %d %d ", img_out[3*(i*x_scaled_size+j)+0], diff --git a/bob/io/image/data/test_spaces.pgm b/bob/io/image/data/test_spaces.pgm new file mode 100644 index 0000000000000000000000000000000000000000..e1d116b5e620659222a461abf0a1f139db853242 --- /dev/null +++ b/bob/io/image/data/test_spaces.pgm @@ -0,0 +1,6 @@ +P5 +# CREATOR: GIMP PNM Filter Version 1.1 + +100 100 +255 +[\[YXY\[^^]`]aaa`d_`ba_b`aad`ddage��jhilpkjsuqnkqquypmstqrk{wrtxuxttvvww{{zxz{{w{|}}���~��������XYYYZ[^_]\_[\^^]\baabb^bbfg`aggiii}��ooitt}�x~tq|xq�lpozupt�stzuu{uywxzyzxz}zz{{zz�}�|~����������X\Z]_[][\^__^^_`__a]f_ca_``\bee`dhw�ypp~�k��op��zw~wpu|�}vvwvwwvx|wy{{}y}|z~}}�}��~}�����~�����YZ[[\]][\]]\_]^```bc`_acbaaccbadwr{x��rx~|uy��~�|z���yqs|ux�}{yyy~vuxux{wy}zz{z{}}�}~�������������WZ\\[[Z_aZ^]^_a^]]_``a_cbccdcbfn`mvw|ggdgo{y�ot�������uw{v����{~x�v{yxzy}x||{{z}~�~~|���~��������Z]]X^`^\^]`_``a_`a_^cbbbbhaeabhlninoTAE>;_]lok^gtm����y����������vwzywxyz{zxwy~{|}y}�~�����������_[[[]]\```]]`a_]cbaa_`ccabdfbhlvxuqUA:9/36=CMRX_|wo~����^`�su{w���~�zzxz{|y{{||}}~~|��~����������XZ[\_]]``a[]_^\__`Zdaa__eddbdabfxv\;6@ADB:2<D@J\d�~�no�p}���������}�}}}xyyxz|��{}{|~~��������������^\[Y\\Z\\^^^`^^^^^b^baacccegbfqil[D;EA:S@PLNMOakXlrxlmvtlQa��zy��������Ëzyxy|z{{|�|~��|}}������X\\][^]]Z^]\``_`_aab`abbcaefdheqYSE:NF28:;:GIKLGlfY`lo]MM>eoexi�����������~y{||{~{||�}����~��������]`]Z\\`^^^]b_^a`aa]b`aaab`bccem^FJL?K4:QPdA;E[J@UJKWNehN]\Vgkns����ڲ�����z|{}z~||}}~��~��������YY^]^]\a`^_a^````^d_acbbfabdbfcYZ;9MKEPXu~f?]?YQl^G^>4>LK>QWSfjlz�����������zzz|~�|�|}���}��������\][][\\a\_`\^[a^_b`b^bdabbg`gbWRHE<>RQ_rr��rB<PfTQcNE=8=7:?SCPkbki���ǫ������z|}}{~{�~~����~�����]]^\[_^\_Z]_adac]`bc_c`hfbefgdROI;A7NN\hs���UK_UIKc@640-060<Vethgg{���ǻ����{xx}z�|z~��~}���|���[\\]]\Z^_^_^__a`\aa``^d`ddfggUAFZLI57LALkz{q^XhlbD:D7/5(3)-?<>YDa_qw������ȼ��y|{|~�||���~���~���\Y[\[Y`c_]\\_b^^]a``cccdgebg_I?CTZJG87B=Ubig^U\GO^P525F)/9::1B?^VhHgz������ҝ�~}{{{||�~�������Z\\\^b^\]a`b`da_a^_`bbebcbda^n_LMRLC<2+<MPXIDL@L`XV..8+0+I1"!9E33nuNWt�����ͷ��}z}{��|~}��}�������`\_^_\^]\Zcb`__`]`[j\bbadbg^VPZWHA<F;;/8>M@H;=BGF&6<>4**>(%35,87U�\SRf����ɹ����zz~}�~���~�������[\ZaaZ^a^c^cdc`b_bbedecdee`IJ@CC@FNE?94*%7D4;59B4.+$2 %2?,.86239=6EZhk�����|��}}~}}�|����������^\\a\[`^][b__bad[ad``geedgZFLNID@:?27601 09/NENCUWA=;(%%&8)6+),:0.?\DSfr���л����|{|{|~|�~�������]WZ]b`]]aa_ba`c_cbbdb_edf`IRHXD878.14($&0$./LIYOPVk_?/ 3C/"0/:<94Yea`ax����Ǒ����{}}z�}~{�}~~���][[Z^]]]]^_b\c_aa_d^_cffgUPPT=3/85-'#40)46411YVi^j{�s+(,334(252::Db�vp|~����ؙ��ë�~���{|����������]]\]^^`_ab`^`]`c__eebbdg`VHK323812/&%*975.+309AFVTX;=P05+'8-618CNCx~a������ù�����͇��|}~�����z����\[`_`_Y[Z\_a\`_a^cbjdf`cGLF@/129*10-**,363CG+/;177+"12%91%*99407kuf~�w~sw���������֣�����}}|~�����\^\]\^__b`__```dac`eadcRILB87398:*$/&(,1+/;5."2;/$%#5)-->( 306<6W�ivIRWjwl{������������}�~�~����\]]]]]_]`^b`_b_a]bc_c\PHCE:;.3,=4)/.,&!(5=BL4)+'0%$#+,.5@(8/75KGM�~aX\oY_JSl�������Ѷ���~}�|��~����Y\]_`^a[^a^\c^]c`afc_VHGH@A843=:,0*+&,.0&?J7;7)+.*,#/+3><66177?V^�t@Ll�JRIX`x�¦}��ͣ����|��~��~����\\Z[]a_[^]cb`abdaace`ME2E<?5<<;6:/2/*1440::G;7+$)3*)*+=580F:;ATV�]]g=<UBDDG^~������Ʈ�Ț�}~�~���~~�]]^]``]^]`ca^b]ab_d^ZQ0-B57/<0A?==9@F88;@?;/(.+710/1-4@9;HC?EDUR_hh@18AJGXZpq���������Ӗ���~���}����\_\_][^\a\[acb_bccaaP2&0=55C5<>9<I<.4;H:25,&&14,172.0J437%8?LU_MYyV5;7@XbL[viy�������������}������\`]^b^]_aa^_a^abdb_\V8:7101@35G:P>*:A=40.9%./<95750-9DAN4/<>0LeVCPS`P,J`lnqSTw���Ȥ���������{}}~~^]^_a]]cbb__]\^^`aa[QN9>&&,0,3IHL:/%-159345;5>B773.6IC4<=O246+_jFQPQfKZx�sjj�������������|�~~~��`]`bc]\^b`bbab^bea`VHH/1H%4,09?C<.2-26<8;""<GX>@;7<M?8>F78A>4:h?DMVNI^����n��������������~~~|�~~�[]^`a]^`aaa`bb_bb[ZKEK@+A61'*HFI2)7HE@>:,/*4DF:A=<7;K:DXhM?<<<3=B4?HRLRf}~�zx�������Ŵ��}{}~z}�|��~]\Z]aab``d_aa`]b^QM>=TG-@>/&4IBZ28;;FQ:'202HH>CIIB>7F@>DZtsaDK7_kC<D<TQ`kx�����������ʓ����}|�����\Y[^]`^`\_^bbb`a[C>F3O>7=92<7CKN7=;F?:=?:JF=FGCMNG?7L9FBRUmpry~�etfGJKs������d�������С��}z}�}|��|��^^^__b`]a_bdbceb`O@7.H;;@6;@G>PN-*+/8+$ -4DNQWSQLKD9M4EKTUYjrx�roo��_UU~�x�ci���s����հ�~}�~}}~��~[^]^`[[aacbc`bcbcO@4?;81=>,6O=JH6*-)4#'1FP\^caWSLRH9B4R_[W^[]}�|�ny��IYpw��r]t`~����ظ�}}~{{}}~�]a_^a_a```_^c_bf`AAK246$=4'.S>EI5-4+8-9GUiqmkgZWTPU?EJXZ_f_YHSGPl���lDg|��~ajvTi����ʢ�~~�||�~{�`^````b^_bdbb`bh`OMN263)0/''B24@D.-26@LZanqprkYVUW_HIRXQiaefWHNOihl���R]���suiJG\����ƚ��z�|}|}|��`^a^a^cb_]`c\_cfTVYT:@5%(6+340IN23;:GWahrovqo^S_]dNAJ]dijkkcL_S_\CYv��m���xaf7Sg����Н|���|x�z|{�}][`^]^c__aaccbbeNWV;[M5%$(0052?R67GCDQ\lqqosq\Y\ccSNGUfbowocRN[eGY|��}����xR[<.mk��ӵ�|�}}}|zy|�]a^_`]_^_c`cccdcH\RI=;4'+)-%:,78>=KUKNbioos|sfg[ec^cQTWncmzYjpinXX����~n�ukYEO+wo���Λ}�}�~�}}z�~`a`\a]c_`__aae`YMRE;=7?2-!,4:,&4JTJRTRVlvzw{ymkadoi_dY]asugTc_qkqI\�|VVt�v`B:F:^s���¦���~~~�~~�}�_aa_d__]_dbd`ceY@>D8:==10/%17% :9OTSVgkqy{y��qs�w\t`pq`\ZQVQkebjx�hNTZhpsGF79AT@u��ѱ�x|x|�||}��``_^dbf^aaibdca^6@?9QC"\tE 1;ELS_ijplry��xz�}uhcw�yJY_RVTss����eU{qtS?88GTE_��ѧ�}}y�|||}}||}]^_]b]_]^_b^cbejG9=@7!% )ZbiN?6&<?FFMhwvro~|}������y|���|_Qpslop�����ǖP:;9UbJS~�գ�zz|y|}~|~z}`^_^^``_`caaQPZVL52/$!,!#GOxsm`^P4?JRUQScvtyxz�������y�|��zW_u��ĸ����ۮ�\-:PMHXbo�ڕy~{yz}}|~~z~^a`a_aacbbbefQ:31--&))4' >qcJZdUJW^J^ic_[TR_kf}��������pon^K[b���̾�����ǔjQB4;\cWa�ԓ�|{{{}{{}z{~|}```_]`ffbbccefUB7-/8B>1%<�|iw{���~nZy�}zhjc`_o�}�������ysmz��l|�������ȸ�\:70:QaQW�ɓy{{||{}{{z}|}`]_^^aanle``]_d]OFWKI;!"$V�vWh���~|�x~}}ylnnpucv���������tmhgcvxp�������ɫmQK/;QfSi���|yz|||y}{|}||^]\_a`]adeeeebac]_YZJ(7X��b�������~������{}�wm~������sl����������������ƑYT.DKiL���~z{yyxz~}y|}]^_^_`aaabb]bbc`d_`K1(@Y��w��������������uhivru�����n����������������߽�woF6BNc^t��x�v{yyy{{}}{y}\\\aaaa_]ab`da`dcabK* .>d��v�}~�ztlnhkfZgnlZPuvy���s�������������������~��D8GM_i���|�uxzzxzz~xwxv[_]_^^_\^b``cbaa`b^?0@Ak��w�xvfn���y{usiSWMPlynq�����wfbdo{�������������9@AQic���|xz{u{wzzu{z{}x][\b__^_^]a_cbddfcb;&<L8k��s�{zx[Tml[XVONEU]Y`dw������xils{�����������ȍ��1F@Ws|w��xwyy{uu{{~xxys|^]^]aa]`]a^\dddecdi63JiBg��y����heQ<6;HIKPUhh}po���Ǔzd^RG=HWl���������r�8OIm}�~�yyxxvww~yuxxxzxx`[___b^a_cab``abddn@(<^n6^��{������wWPX^X]dagdrFn���Н�xfelmsx�����������]�^LU�����suvwuuxvz{x{wyvy\][[Z\_]_`^^_d^c`acK6CPc?n��~���������{�~{qio��N_����ž�~����������������U��Tl�����xvwvuvutwtwtzywy]\\\\_`[^^\``^`d`bkV=7NAAr��������������������wBx�����߾����������������ƽ[��S����~zwytvxwxvwywyxxvv`]^]^[^^^^_`ac^b^biMB??23�}��z����������������J[����Ǭ��IJ��������������ӥt��V��ij�zuvuvwuzxqrwvwvx{_]_[__`_^[_b__abbbi`LBA:.tv������������������jMs����ֶ���Ƽ�������������ےl�zX��Ӯ�|vusuxzwyyyswyuwx[]]]]_^_c``^a^_`bdagI>BH4hb�����������������{Jq�����������̸�������������}m��S�ͥ��twuwvuuwvtyyuwvuw[[[\^Z[_aa_ba^a_bd_deJHV7i������������������Vh��������������������������xpz�S��Ů�}vwwtsvwsvtwuuvwy[\[_]^_^a^_^`^`c`bdccWPJ=jav���|uz��������w`ey�������������ʽ����������宀u��Z��ͣ�~uxwuutuusvtutzuwY]^\_^][aab`eac`[_debh\K7Tmw����|oqnqvspi__oz{��������������Ƚ���������띆���^�����}wqrwxvsrruvxxwxuZ[_Z]][\\]]^^]`\cbachd`Z=KZs����~wxohvtrtx�|rms�������|���������������㪜���_�����yxqutsorrsrrtptvr\^[[ZZb]]^^`_bab^_]`ad_^MNGE��������������yWfq��������|q|�ɾ�����������ʳŴ���{}yrusrossssruusouwvxXXX]]^]``\^^bc`_bb_`bab^XA@=���������������qIr}��������n���������������ɯ��f��|rnrnonlrnsosqtrvpsvuZUa^[Y`_]]_]c\bacb_cc`ba_-83��������������~dQ{����������f|�������������俼��P�twqsrnpnmqorutrrqquvyu_][][W^_\^[b_a^][_`]bb_\Y,B/q������{������~bR����������ht�������������m�trmlorvponoonsntorsvsqtYZ]]Y\[]\\a__]^[`^daac_SI,F?U�������������wk]nkjv����ߣ��~��������������hm�|}pqonopmqprsqprptpqrsqqnYY\[_]]^\^]\_[^`a[^__b__UZ0\6������~�}���}zt[YHhouÝ}�����������������a�W��oppnnmlnoquoqqprssqsqtx]\\_^Y_\^[\a\^a`]^___^`_ag)`4�����|}����~yvsbb_m����������������������hgowrklmootornpopqpnotsqpsqrX]Z\\][[\X\\^_]\_a_a]d_`bbEWIs������z����{|w{v|��Ǿ������������������Srmmnlollnomprspnqrurqrqrso\Y[\YZ\Z^\]]\^]__^[[[ac``]_.[C�����|zx��������������ʿ����������������~ZtknkmllnolqmppqronsrqppoppuVX\Y[[UV\_\^b[]\^a^]_^``abd6^T������uy}����������������®�������������ljnmllmqnnomlnpmnomqprtqpporp]Y[[Y[^][[Y][]_Y[\]]^^^_\\`\&gl�����~xux~��~������������װ�������������MomkhmljpnnoloonnpopqmnpnqmomXWWZW[Z\_Y\][`YZ\[]c]^^_c^cbL8������yvy{�}�������������ο�֤��������Grlimjkjhihljjlllnooppqopmmpos[YXWX\X[ZZ\\\[\\\]]]\``__c_bd(l�������~������������������¶�������l\qkehigkkjklinlmmpoompplpnspmV[W[XYZ[\][[X]X]]Z]Z^]^]c_cb$��������~~t�s][_o����������̥���������Dk�rhkhkhkmjnlmommromnolminqsuX[YXYY\Y\\[^\[]W^][a\\_`cbS&"a�������|om[UN:))<HE@,3Ks������������Z<��hlffijhmijknnlhkknplmlkmmnmZZW\Y\[W\YX[^]`[^]a^]`c]cB$!)��������mkhNOLB-'.)1>Q���Ө���������R5u�VYspiiikhlllklmklknlllkkknmYW[`Z[YVX^\^ZX\Z]ZZZ][[eA!"# "2d����}yojlpfj[GMJDBBt���Ϯ�������� X]rNPa7_mpmjfhomplpnlhkkmlillkV[WXXZ]_[V[[[YZ^Y]\\__a=$# !3R{�}yxzumnppnkmdiejfd�����ë�������6inWeATgNBCOkjljjiknkojoonqmmkkoVXZZYWXTY[YZ\]^[Z\Z[bK,.<Wm}zwvwvswsmbhbjsvlgz�į���Ϫ�����+)Mg_>OYgFG?GdomjhjkimkhqllgmlolXZZWWV]ZXZ\ZZZ[[\aa`6(!"+;Sdouxstqnyxonhjmo�����������չ����F**J\2MXgOHADCMgmjikjjllmkmkjmmmWXW\XYZZYZ\\Z[\\[^G' "/:Qaqqnrtxw|zvsniiqs}~�������������B'%-JT2AZZEJIBC>>HcijijhiigjkjlmjYWZV[ZZWZ[YX[\Z^T4!):VZgrkiov}���}zokms~������������ϑ; (Ea/=NSL?BDC?A?DRdkmhmokkkkjilWYVWYZWYWXZY\`Z=&!+;:[]ormgou�}���}{w~����������������</I]1@FER9=FA>:@B@JYljeikkkjhjiUWV]XZZ\ZYZ\_E'!!-=6TXlkmunqy~��y�z}��������������y5! *>^7<?7N79=?>>;;;>BPjrmjiihkkjXWUW]XZZXX`B*""(:5MZgimoktqz��������������������ۙd) !+C_6::7I16898:73:8;BHexrllnhieXVSZX[Y_YE' %#&2:LSbehoojmwx|�w����������������χQ! #,JT4645C-2857316/273<IcoipphjfWVXW[^]@.& 3G>W]addhmkjru{{{��������������xP&"&.PV0730<+334210//03377?Xz`OdkkTWYXY4**!7C<QXfe``gihokosv{rqx�����ҷ���שcE.LT1.3.6.12//.+0.,.2/69;QgsdZkVY\>,.# 7D=LU[kb[hgcmncimpkho|vp�ɫ����N>%#2XT,,,42,*/-(+,,),/-3128>PWhyaXT4(#!2ABMRTcd_[_hfommjd_]gt��满���ƠiA4"(6ZJ0*(-0+,(,0&)/))+*+++68?IUftP.*! 4AF>YR]fjcb_dkqt�~zux���ޭ���Ӯ�U<)!&7\D0),/0.*+')*+%+(()(')/08=KXd+" !(AG;JTYfmlfc_am~�xmry}��ү��κ��O9';Y<+(/070*+%')++)%'(((**05=AKZ"# !>DF@TY^gnmhjefjxww{}���������tK< ,?O6)$+..1'')*&)'(''&'$'&,/9;AK diff --git a/bob/io/image/test.py b/bob/io/image/test.py index b86b27a34d7cb4472d4041415015215a339c9bd8..663abfdd0f0050a4c3ea8a6714a7306603875497 100644 --- a/bob/io/image/test.py +++ b/bob/io/image/test.py @@ -101,6 +101,7 @@ def test_netpbm(): transcode(test_utils.datafile('test.ppm', __name__)) # indexed, works fine transcode(test_utils.datafile('test_2.pgm', __name__)) # indexed, works fine transcode(test_utils.datafile('test_2.ppm', __name__)) # indexed, works fine + transcode(test_utils.datafile('test_spaces.pgm', __name__)) # indexed, works fine # transcode(test_utils.datafile('test.jpg', __name__)) #does not work # because of re-compression @@ -112,8 +113,8 @@ def notest_gif(): def test_image_load(): # test that the generic bob.io.image.load function works as expected for filename in ('test.jpg', 'cmyk.jpg', 'test.pbm', 'test_corrupted.pbm', - 'test.pgm', 'test_corrupted.pgm', 'test.ppm', 'test_corrupted.ppm', - 'img_rgba_color.png', 'test.gif'): + 'test.pgm', 'test_corrupted.pgm', 'test_spaces.pgm', 'test.ppm', + 'test_corrupted.ppm', 'img_rgba_color.png', 'test.gif'): full_file = test_utils.datafile(filename, __name__) # load with just image name i1 = bob.io.image.load(full_file)