summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl.straw/lib/Imager/LargeSamples.pod
blob: fe2f8f027ad745153fdf5ccc3a578f73779d3d93 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
=head1 NAME

Imager::LargeSamples - track/document large sample support

=head1 SYNOPSIS

  # make a large sample image
  my $im = Imager->new(..., bits => 16);

  # call some method
  my $result = $im->$method(...);

  # was the image modified at its full sample size

=head1 DESCRIPTION

Imager has had in-memory support for large samples for years now, but
many methods still don't work at the higher sample size when supplied
with a large sample image.

This document will track which methods support large samples and which
don't, for future improvements.

=head1 Support by method

  Method       Support    Notes
  ------       -------    -----
  arc          Partial    [1]
  box          Partial    [1]
  circle       Partial    [1]
  convert      Full
  copy         Full
  crop         Full
  difference   Full
  filter       Partial    Depends on the filter.
  flip         Full
  flood_fill   Partial    [1]
  getpixel     Full
  getsamples   Full
  getscanline  Full
  map          None
  masked       Full
  matrix_transform
               Full
  paste        Full
  polygon      Partial    [1]
  polyline     None
  read         Partial    See L<File format large sample support>
  read_multi   Partial    See L<File format large sample support>
  rotate       Full
  rubthrough   Full
  scale        Partial    Some qtypes support large samples
  scaleX       None
  scaleY       None
  setpixel     Full
  setscanline  Full
  string       Full       Preserves large samples, but most font drivers
                          generate 8 or fewer bits of levels of coverage.
  transform    None
  transform2   None
  write        Partial    See L<File format large sample support>
  write_multi  Partial    See L<File format large sample support>

[1] filling an area using the fill parameter works at the full depth
of the image, using filled => 1 and color works at 8-bits/sample

=head1 File format large sample support

  Format    Format samples    Imager support
  ------    --------------    --------------
  BMP       8                 8
  GIF       8                 8
  ICO       8                 8
  JPEG      8, 12             8
  PBM       1                 1
  PGM/PPM   1-16              read any, writes 8, 16
  PNG       1, 2, 4, 8, 16    8
  RAW                         8
  SGI       8, 16             8, 16
  TGA       8                 8
  TIFF      (many)            read/write 8, 16, 32 contig rgb/grey images
                              read/write bi-level
                              read/write 4/8 paletted images

=head1 Filter larger sample support

  Filter      Large sample support
  ------      --------------------
  autolevels      No
  bumpmap         No
  bumpmap_complex No
  contrast        No
  conv            Yes
  fountain        Yes
  gaussian        Yes
  gradgen         No
  hardinvert      Yes
  mosaic          No
  postlevels      No
  radnoise        No
  turbnoise       No
  unsharpmask     Yes
  watermark       No

=head1 AUTHOR

Tony Cook <tony@imager.perl.org>

=cut