Use getImageFormat to know the image format in the constructor.

Since we don't load the image with Imagick constructor, we need to use the [get|set]imageXXX methods.
We should be able to handle the image as if it was loaded from Imagick constructor, so that we don't get lost between the image and its frames.

Also added a debug log so that we get some info on unhandled mime types.
This commit is contained in:
Domovoy 2012-07-22 15:24:41 +02:00
parent 0acb983be4
commit 689e3028bf

View file

@ -47,7 +47,7 @@ class Photo {
$this->image->readImageBlob($data); $this->image->readImageBlob($data);
// If it is a gif, it may be animated, get it ready for any future operations // If it is a gif, it may be animated, get it ready for any future operations
if($this->image->getFormat() !== "GIF") $this->image = $this->image->coalesceImages(); if($this->image->getImageFormat() !== "GIF") $this->image = $this->image->coalesceImages();
$this->ext = strtolower($this->image->getImageFormat()); $this->ext = strtolower($this->image->getImageFormat());
} else { } else {
@ -460,8 +460,10 @@ class Photo {
$quality = get_config('system','jpeg_quality'); $quality = get_config('system','jpeg_quality');
if((! $quality) || ($quality > 100)) if((! $quality) || ($quality > 100))
$quality = JPEG_QUALITY; $quality = JPEG_QUALITY;
if($this->is_imagick()) if($this->is_imagick()) {
$this->image->setImageFormat('jpeg'); $this->image->setImageFormat('jpeg');
logger('Photo: imageString: Unhandled mime type ('. $this->getType() .'), Imagick format is "'. $this->image->getImageFormat() .'"', LOGGER_DEBUG);
}
else imagejpeg($this->image,NULL,$quality); else imagejpeg($this->image,NULL,$quality);
} }