微信小程序上传png jpg格式图片压缩 PHP语言
时间: 2024-10-22 08:26:36 浏览: 29
微信小程序在上传图片时通常会对图片大小有一定的限制。如果你想在PHP中对上传的PNG或JPG格式图片进行压缩,可以使用GD库或者 Intervention Image 这样的第三方库来操作。下面是一个简单的步骤:
1. **使用GD库**:
- 加载图片资源 (`imagecreatefromjpeg()` 或 `imagecreatefrompng()`)。
- 调整尺寸(如果需要)和质量(`imagejpeg()` 或 `imagepng()`, 第三个参数设置压缩级别)。
- 将压缩后的图像数据保存到新的文件。
```php
// 示例
$image = imagecreatefromjpeg($_FILES['file']['tmp_name']);
$width = imagesx($image);
$height = imagesy($image);
// 压缩比例,例如50%压缩
$new_width = $width * 0.5;
$new_height = $height * 0.5;
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
// 压缩后保存为JPEG
ob_start();
imagejpeg($new_image);
$compressed_data = ob_get_clean();
file_put_contents('compressed.jpg', $compressed_data);
```
2. **使用Intervention Image**:
- 首先安装插件 (`composer require intervention/image`).
- 然后实例化 Image 对象,调整质量和尺寸,然后输出压缩后的数据。
```php
use Intervention\Image\Facades\Image;
// 示例
$image = Image::make($_FILES['file']['tmp_name'])
->resize(\ Intervention\Image\Manipulators\Dimensions::make(800, 600), 'fit')
->encode('jpg', 70); // 0-100的质量等级
$compressed_data = $image->stream();
file_put_contents('compressed.jpg', $compressed_data->__toString());
```
阅读全文