400, "message" => "Not an image", "data" => null ]); } $imagick = new Imagick(); $imagick->readImage($src_path); $format = strtolower($imagick->getImageFormat()); if ($imagick->getNumberImages() > 1) { $imagick = $imagick->coalesceImages(); foreach ($imagick as $frame) { $width = $frame->getImageWidth(); $height = $frame->getImageHeight(); $ratio = min($max_width / $width, $max_height / $height); $new_width = (int) ($width * $ratio); $new_height = (int) ($height * $ratio); $frame->resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1); $frame->setImagePage($new_width, $new_height, 0, 0); } $imagick = $imagick->deconstructImages(); $imagick->writeImages("$dst_path.$format", true); } else { $width = $imagick->getImageWidth(); $height = $imagick->getImageHeight(); $ratio = min($max_width / $width, $max_height / $height); $new_width = (int) ($width * $ratio); $new_height = (int) ($height * $ratio); $imagick->resizeImage($new_width, $new_height, Imagick::FILTER_TRIANGLE, 1); $imagick->writeImage("$dst_path.$format"); } $imagick->clear(); $imagick->destroy(); return null; }