您好,欢迎访问一九零五行业门户网

将jpg压缩成webp格式的图片

<?php /** * created by phpstorm. * user: liuft * date: 2016/1/22 * time: 11:51 */ date_default_timezone_set('prc'); /** * jpg压缩成webp格式 * @param string $dir [webp图片的存储路径] * @param int $n [压缩图片的张数] * @param int $prefix [图片名称的后缀] * @param int $type [裁剪图片的类型] */ function start_multi_jpg_transform_webp($dir = '', $n = 1, $prefix = '_a', $type = 6) { global $jpg_dir; if (!is_dir($dir)) { mkdir($dir, 0755); chmod($dir, 0755); } if (strrchr($jpg_dir, '/') != '/') { $jpg_dir = $jpg_dir . '/'; } if (strrchr($dir, '/') != '/') { $dir = $dir . '/'; } for ($j = 1; $j <= $n; $j++) { $file_name = $jpg_dir . $j . '.jpg';//要裁剪的图片 $new_jpg_path = $dir . $j . '_' . $prefix;//新的图片路径 createimg($file_name, $new_jpg_path . '.jpg', $type, 0);//裁剪生成jpg图片 //生成webp格式的图片 $new_q = 0; $m = 0; for ($i = 11; $i getimagegeometry(); if ($size['width'] > $size['height']) { $left = round(($size['width'] - $size['height']) / 2); $resource->cropimage($size['height'], $size['height'], $left, 0); } else if ($size['width'] < $size['height']) { $top = round(($size['height'] - $size['width']) / 2); $resource->cropimage($size['width'], $size['width'], 0, $top); } if ($type == 1) { $resource->resizeimage(210, 210, imagick::filter_catrom, 1.0, true); } elseif ($type == 2) { $resource->resizeimage(720, 268, imagick::filter_catrom, 1.0, true); } elseif ($type == 3) { $resource->resizeimage(298, 198, imagick::filter_catrom, 1.0, true); } elseif ($type == 4) { $resource->resizeimage(338, 365, imagick::filter_catrom, 1.0, true); } elseif ($type == 5) { $resource->resizeimage(425, 425, imagick::filter_catrom, 1.0, true); } elseif ($type == 6) { $resource->resizeimage(150, 150, imagick::filter_catrom, 1.0, true); } elseif ($type == 7) { $resource->resizeimage(640, 640, imagick::filter_catrom, 1.0, true); } elseif ($type == 8) { $resource->resizeimage(32, 32, imagick::filter_catrom, 1.0, true); } } catch (exception $e) { echo $e->getmessage(); exit; } } $resource->setimagecompression(imagick::compression_jpeg); $current = $resource->getimagecompressionquality(); if ($is_compression) { $resource->setimagecompressionquality($current);//压缩质量 } if (!empty($new_jpg_filename_path)) { $jpg_file_name_path = $new_jpg_filename_path; } $resource->writeimage($jpg_file_name_path); $resource->clear(); $resource->destroy(); } /** * jpg格式转换成webp格式 * @param $jpg_img_path [jpg图片的真实路径] * @param $webp_img_path [webp图片的真实路径] * @param int $q [图片的压缩质量] */ function do_jpg_transform_webp($jpg_img_path, $webp_img_path, $q = 65) { exec("cwebp -q {$q} {$jpg_img_path} -o $webp_img_path"); } /** * 获取图片的质量 * @param $filename [图片的具体路径] * @return int[图片的质量] */ function get_img_quality($filename) { $resource = new imagick($filename); $resource->setimagecompression(imagick::compression_jpeg); $current = $resource->getimagecompressionquality(); $resource->clear(); $resource->destroy(); if (empty($current)) { $current = 65; } $resource->clear(); $resource->destroy(); return $current; } //调用方式 //原始图片,连续用数字命名 !如 1~10张图片,就1.jpg~10.jpg $jpg_dir = './image/';//[准备压缩的jpg图片路径,必须设置!] //压缩出webp格式的图片 start_multi_jpg_transform_webp('./webp', 1, '_a', 0); start_multi_jpg_transform_webp('./webp1', 1, '_a', 1); start_multi_jpg_transform_webp('./webp2', 1, '_a', 2); start_multi_jpg_transform_webp('./webp3', 1, '_a', 3);
其它类似信息

推荐信息