]> git.imager.perl.org - imager.git/blobdiff - lib/Imager/ImageTypes.pod
changes note for sub-module --verbose handling
[imager.git] / lib / Imager / ImageTypes.pod
index fbc8c4c4f93792ae73f3d6a1a6a515457c91b238..39101b9186d2fc214afeaae41ad95089f8e7add0 100644 (file)
@@ -137,7 +137,7 @@ that not all code follows this (recent) rule, but will over time.
 
 =over
 
-=item new
+=item new()
 
   $img = Imager->new();
   $img->read(file=>"alligator.ppm") or die $img->errstr;
@@ -318,7 +318,7 @@ value of C<getwidth()> is undef.
 
   print "Image height: ", $img->getheight(), "\n";
 
-Same details apply as for L<getwidth>.
+Same details apply as for L</getwidth()>.
 
 =item getchannels()
 
@@ -434,7 +434,7 @@ means only channels 0 and 2 are writable.
   $img->setmask(mask=>$mask); # restore previous mask
 
 C<setmask()> is used to set the channel mask of the image.  See
-L<getmask> for details.
+L</getmask()> for details.
 
 =back
 
@@ -609,14 +609,14 @@ the palette, the image will be internally converted to a normal image.
 
 =over
 
-=item to_paletted
+=item to_paletted()
 
 You can create a new paletted image from an existing image using the
 to_paletted() method:
 
  $palimg = $img->to_paletted(\%opts)
 
-where %opts contains the options specified under L<Quantization options>.
+where %opts contains the options specified under L</Quantization options>.
 
   # convert to a paletted image using the web palette
   # use the closest color to each pixel
@@ -638,14 +638,22 @@ No parameters.
 
 =item to_rgb16()
 
-You can convert a paletted image (or any image) to an 16-bit/channel
-RGB image with:
+Convert a paletted image (or any image) to a 16-bit/channel RGB image.
 
   $rgbimg = $img->to_rgb16;
 
 No parameters.
 
-=item masked
+=item to_rgb_double()
+
+Convert a paletted image (or any image) to an double/channel direct
+color image.
+
+  $rgbimg = $img->to_rgb_double;
+
+No parameters.
+
+=item masked()
 
 Creates a masked image.  A masked image lets you create an image proxy
 object that protects parts of the underlying target image.
@@ -721,6 +729,18 @@ the region without specifying a mask.  For example:
   my $maskedimg = $img->masked(left => 100, top=>100,
                                right=>200, bottom=>200);
 
+=item make_palette()
+
+This doesn't perform an image conversion, but it can be used to
+construct a common palette for use in several images:
+
+  my @colors = Imager->make_palette(\%opts, @images);
+
+You must supply at least one image, even if the C<make_colors>
+parameter produces a fixed palette.
+
+On failure returns no colors and you can check C<< Imager->errstr >>.
+
 =back
 
 =head2 Tags
@@ -737,6 +757,9 @@ You can retrieve tags from an image using the tags() method, you can
 get all of the tags in an image, as a list of array references, with
 the code or name of the tag followed by the value of the tag.
 
+Imager's support for fairly limited, for access to pretty much all
+image metadata you may want to try L<Image::ExifTool>.
+
 =over
 
 =item tags()
@@ -866,12 +889,18 @@ specification like "#FF0000" into a color object for you, but if you
 set this as a tag you will need to format it like
 C<color(>I<red>C<,>I<green>C<,>I<blue>C<)>, eg color(255,0,0).
 
+=item *
+
+X<i_comment>C<i_comment> - used when reading or writing several image
+formats.  If the format has only one text field it will be read into
+the C<i_comment> tag or written to the file.
+
 =back
 
 =head2 Quantization options
 
 These options can be specified when calling
-L<Imager::ImageTypes/to_paletted>, write_multi() for GIF files, when
+L<Imager::ImageTypes/to_paletted()>, write_multi() for GIF files, when
 writing a single image with the C<gifquant> option set to C<gen>, or for
 direct calls to i_writegif_gen() and i_writegif_callback().
 
@@ -1012,6 +1041,11 @@ as good a result.
 C<mono>, C<monochrome> - a fixed black and white palette, suitable for
 producing bi-level images (eg. facsimile)
 
+=item *
+
+C<gray>, C<gray4>, C<gray16> - make fixed gray palette with 256, 4 or
+16 entries respectively.
+
 =back
 
 Other methods may be added in the future.
@@ -1039,7 +1073,8 @@ Possible values are:
 
 =item *
 
-C<giflib> - the C<giflib> native quantization function is used.
+C<giflib> - this is a historical equivalent for C<closest> that also
+forces C<make_colors> to C<mediancut>.
 
 =item *
 
@@ -1052,7 +1087,9 @@ closest color is chosen.
 
 =item *
 
-C<errdiff> - an error diffusion dither is performed.
+C<errdiff> - an error diffusion dither is performed.  If the supplied
+(or generated) palette contains only grays the source colors are
+converted to gray before error diffusion is performed.
 
 =back
 
@@ -1120,9 +1157,10 @@ This function is a mess, it can take the following named parameters:
 
 =item *
 
-C<log> - name of a log file to log Imager's actions to.  Not all actions
-are logged, but the debugging memory allocator does log allocations
-here.  Ignored if Imager has been built without logging support.
+C<log> - name of a log file to log Imager's actions to.  Not all
+actions are logged, but the debugging memory allocator does log
+allocations here.  Ignored if Imager has been built without logging
+support.  Preferably use the open_log() method instead.
 
 =item *
 
@@ -1147,6 +1185,69 @@ Example:
 
 =back
 
+=head1 LOGGING METHODS
+
+Imager can open an internal log to send debugging information to.
+This log is extensively used in Imager's tests, but you're unlikely to
+use it otherwise.
+
+If Imager has been built with logging disabled, the methods fail
+quietly.
+
+=over
+
+=item open_log()
+
+Open the Imager debugging log file.
+
+=over
+
+=item *
+
+C<log> - the file name to log to.  If this is undef logging information
+is sent to the standard error stream.
+
+=item *
+
+C<loglevel> the level of logging to produce.  Default: 1.
+
+=back
+
+Returns a true value if the log file was opened successfully.
+
+  # send debug output to test.log
+  Imager->open_log(log => "test.log");
+
+  # send debug output to stderr
+  Imager->open_log();
+
+=item close_log()
+
+Close the Imager debugging log file and disable debug logging.
+
+No parameters.
+
+  Imager->close_log();
+
+=item log()
+
+ Imager->log($message)
+ Imager->log($message, $level)
+
+This method does not use named parameters.
+
+The default for C<$level> is 1.
+
+Send a message to the debug log.
+
+  Imager->log("My code got here!");
+
+=item is_logging()
+
+Returns a true value if logging is enabled.
+
+=back
+
 =head1 REVISION
 
 $Revision$