@ -104,12 +104,12 @@ class jimIcon {
}
// See if we can parse it (might be PNG format here)
$i = @imagecreatefromstring($data);
if ($i) {
if (self::has_parsable_image_type($data)) {
if ($i = @imagecreatefromstring($data)) {
imagesavealpha($i, true);
return $i;
}
}
// Must be a BMP. Parse it ourselves.
$img = imagecreatetruecolor($e["width"], $e["height"]);
@ -267,5 +267,12 @@ class jimIcon {
}
return $img;
}
// Checks whether the data is a type parsable by imagecreatefromstring()
private function has_parsable_image_type($image_data) {
$size = getimagesizefromstring($image_data);
return $size & & in_array($size[2],
[IMAGETYPE_JPEG, IMAGETYPE_PNG, IMAGETYPE_GIF, IMAGETYPE_BMP, IMAGETYPE_WBMP, IMAGETYPE_WEBP]);
}
}
?>