---
name: "Imager::LargeSamples"
section: "3pm"
platform: "linux"
package: "libimager-perl"
version: "1.027+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Imager::LargeSamples"
---

# Imager::LargeSamples(3pm)

track/document large sample support

## NAME

Imager::LargeSamples - track/document large sample support

## 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
```

## 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.

## Support by method

```
  Method       Support    Notes
  ------       -------    -----
  arc          Partial    [1]
  box          Partial    [2]
  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

\[2\] **box()** will fill the area at the supplied color, but outline at 8-bits/sample.

## 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    1, 2, 4, 8 paletted
                              1, 8, 16 gray (1 for is_monochrome() images)
                              8, 16 RGB
  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
```

## 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
```

## AUTHOR

Tony Cook \<tonyc@cpan.org\>
