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

Comparing CV/CV.xs (file contents):
Revision 1.8 by root, Mon Apr 5 20:55:10 2004 UTC vs.
Revision 1.14 by root, Tue Feb 8 12:51:12 2005 UTC

97 } 97 }
98} 98}
99 99
100///////////////////////////////////////////////////////////////////////////// 100/////////////////////////////////////////////////////////////////////////////
101 101
102MODULE = Gtk2::CV PACKAGE = Gtk2::CV::ImageWindow 102MODULE = Gtk2::CV PACKAGE = Gtk2::CV
103 103
104PROTOTYPES: ENABLE 104PROTOTYPES: ENABLE
105 105
106GdkPixbuf_noinc * 106GdkPixbuf_noinc *
107transpose (GdkPixbuf *pb) 107transpose (GdkPixbuf *pb)
235 } 235 }
236 } 236 }
237} 237}
238 OUTPUT: 238 OUTPUT:
239 RETVAL 239 RETVAL
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, j;
257 SV *sv = *av_fetch (av, i, 1);
258 STRLEN len;
259 char *buf = SvPVbyte (sv, len);
260
261 int tmphist[256];
262 char *hist;
263
264 SV *histsv = newSV (257);
265 SvPOK_on (histsv);
266 SvCUR_set (histsv, 256);
267 hist = SvPVX (histsv);
268
269 Zero (tmphist, 256, int);
270
271 j = len;
272
273 while (len--)
274 ++tmphist[(unsigned char)*buf++ & 0xda];
275
276 len = j;
277
278 bigst = 1;
279 for (j = 0; j < 256; ++j)
280 if (tmphist[j] > bigst)
281 bigst = tmphist[j];
282
283 for (j = 0; j < 256; ++j)
284 hist[j] = tmphist[j] * 255 / (len == 0 ? 1 : len);//bigst;
285
286 av_push (result, histsv);
287 }
288
289 RETVAL = newRV_noinc ((SV *)result);
290}
291 OUTPUT:
292 RETVAL
293
294
240 295
241############################################################################# 296#############################################################################
242 297
243MODULE = Gtk2::CV PACKAGE = Gtk2::CV::PostScript 298MODULE = Gtk2::CV PACKAGE = Gtk2::CV::PostScript
244 299
345 } 400 }
346} 401}
347 OUTPUT: 402 OUTPUT:
348 RETVAL 403 RETVAL
349 404
405SV *
406hv84_to_av (unsigned char *hv84)
407 CODE:
408{
409 int i = 72 / 3;
410 AV *av = newAV ();
350 411
412 RETVAL = (SV *)newRV_noinc ((SV *)av);
413 while (i--)
414 {
415 int h = *hv84++;
416 int v1 = *hv84++;
417 int v2 = *hv84++;
351 418
419 av_push (av, newSViv (v1));
420 av_push (av, newSViv ((h >> 4) * 255 / 15));
421 av_push (av, newSViv (v2));
422 av_push (av, newSViv ((h & 15) * 255 / 15));
423 }
424}
425 OUTPUT:
426 RETVAL
352 427
428
429

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines