https://github.com/brucemiller/LaTeXML
Raw File
003_unit_imagemagick.t
#======================================================================
# Unit test for LaTeXML's optional image conversion capability
#======================================================================

use Test::More;
BEGIN { use_ok('LaTeXML::Util::Image'); }

my $image_converter = image_object();
my $is_image_magick = $image_converter && ((ref $image_converter) eq "Image::Magick");
if (!$is_image_magick) {
  diag("Skip: This unit test only examines basic Image::Magick conversion, when installed."); }
else {
  # try converting a sample PDF image
  my $pdf_image = "t/unit/triangle.pdf";
  my $png_target = "t/unit/triangle.png";
  my $conversion_ok = 0;
  if (image_type($pdf_image) eq "portable document format") {
    my ($loaded_image, $w, $h) = image_graphicx_complex($pdf_image, []);
    if (ref $loaded_image eq "Image::Magick" and $w > 0 and $h > 0) {
      image_write($loaded_image,$png_target);
      if (-f $png_target) {
        # if we *can* convert, make sure the PNG has some size
        ok((-s $png_target) > 0,
          "PDF to PNG conversion did not produce an image of non-zero size");
        unlink($png_target) if -f $png_target;
        $conversion_ok = 1; } } }
  if (!$conversion_ok) {
    # if we *can't* convert, and Image::Magick is installed, warn about the config issues.
    diag("Image::Magick is installed, but a simple PDF to PNG conversion fails.\n"
    . "\tConsider changing the policy.xml permissions to enable the feature.\n"
    . "\tFor details, see https://github.com/brucemiller/LaTeXML/issues/1216"); } }

done_testing();
back to top