ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CV/CV.xs
(Generate patch)

Comparing CV/CV.xs (file contents):
Revision 1.9 by root, Tue Apr 6 23:53:20 2004 UTC vs.
Revision 1.10 by root, Tue Feb 8 10:34:19 2005 UTC

236 } 236 }
237} 237}
238 OUTPUT: 238 OUTPUT:
239 RETVAL 239 RETVAL
240 240
241SV *
242make_histogram (SV *ar)
243 CODE:
244{
245 int i;
246 AV *av, *result;
247
248 if (!SvROK (ar) || SvTYPE (SvRV (ar)) != SVt_PVAV)
249 croak ("Not an array ref as first argument to make_histogram");
250
251 av = (AV *) SvRV (ar);
252 result = newAV ();
253
254 for (i = 0; i <= av_len (av); ++i)
255 {
256 int bigst = 1;
257 int j = 0;
258 SV *sv = *av_fetch (av, i, 1);
259 STRLEN len;
260 char *buf = SvPVbyte (sv, len);
261 int tmphist[256];
262 char *hist;
263
264 SV *histsv = newSV (257);//("", 0);
265 sv_upgrade (histsv, SVt_PV);
266 SvCUR_set (histsv, 256);
267 hist = SvPV_nolen (histsv);
268
269 Zero (tmphist, 256, int);
270
271 while (len--)
272 ++tmphist[*buf++];
273
274 for (j = 0; j < 256; ++j)
275 if (tmphist[j] > bigst)
276 bigst = tmphist[j];
277
278 for (j = 0; j < 256; ++j)
279 hist[j] = tmphist[j] * 255 / bigst;
280
281 av_push (result, histsv);
282 }
283
284 RETVAL = newRV_noinc ((SV *)result);
285}
286 OUTPUT:
287 RETVAL
288
289
290
241############################################################################# 291#############################################################################
242 292
243MODULE = Gtk2::CV PACKAGE = Gtk2::CV::PostScript 293MODULE = Gtk2::CV PACKAGE = Gtk2::CV::PostScript
244 294
245void 295void

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines