压缩图片到指定像素大小代码
时间: 2023-11-25 15:04:19 浏览: 96
以下是使用Pillow库将图像压缩到指定像素大小的示例代码:
```python
from PIL import Image
# 打开图像文件
img = Image.open("example.jpg")
# 设置目标像素大小
target_pixel = 800*600
# 获取图像原始像素数量
width, height = img.size
original_pixel = width * height
# 计算缩放比例
ratio = (original_pixel / target_pixel) ** 0.5
# 按比例进行缩放
img = img.resize((int(width / ratio), int(height / ratio)))
# 保存为压缩后的图像文件
img.save("compressed.jpg", "JPEG")
```
在上面的代码中,我们首先打开图像文件,然后设置目标像素大小。接下来,我们获取图像原始像素数量,并根据目标像素大小计算缩放比例。然后,我们使用`resize()`函数按比例进行缩放,并使用`save()`函数将其保存为JPEG格式的压缩图像文件。您可以根据需要更改目标像素大小和保存的文件名和格式。
相关问题
python批量压缩图片到指定像素并保存
你可以使用Pillow库来实现这个功能。
首先,你需要安装Pillow库:
```
pip install Pillow
```
然后,你可以使用以下代码来批量压缩图片:
```python
from PIL import Image
import os
# 设置输出图片的像素大小
width = 500
height = 500
# 设置输入和输出文件夹
input_folder = 'input'
output_folder = 'output'
# 循环处理每个文件
for filename in os.listdir(input_folder):
# 检查文件是否为图片
if filename.endswith('.jpg') or filename.endswith('.png'):
# 打开原始图片
image_path = os.path.join(input_folder, filename)
image = Image.open(image_path)
# 调整图片大小
image.thumbnail((width, height))
# 保存压缩后的图片
output_path = os.path.join(output_folder, filename)
image.save(output_path)
```
这个代码将会扫描`input`文件夹中的所有`.jpg`和`.png`文件。然后,它将逐个打开图片,将其大小调整为500x500像素,并将其保存到`output`文件夹中,保留原始文件名。你可以根据需要更改`width`和`height`变量来设置输出图片的大小。
js压缩图片到指定大小
你可以使用 HTML5 中的 Canvas 元素和 File API 来实现 JavaScript 压缩图片到指定大小的功能。以下是一个简单的示例代码:
```javascript
function compressImage(file, maxSize, callback) {
var reader = new FileReader();
reader.onload = function() {
var img = new Image();
img.onload = function() {
var canvas = document.createElement('canvas');
var ctx = canvas.getContext('2d');
var width = img.width;
var height = img.height;
var ratio = 1;
if (width > height) {
if (width > maxSize) {
ratio = maxSize / width;
}
} else {
if (height > maxSize) {
ratio = maxSize / height;
}
}
width *= ratio;
height *= ratio;
canvas.width = width;
canvas.height = height;
ctx.drawImage(img, 0, 0, width, height);
canvas.toBlob(function(blob) {
callback(blob);
}, 'image/jpeg', 0.8);
};
img.src = reader.result;
};
reader.readAsDataURL(file);
}
```
这个函数接受三个参数:
1. `file`:要压缩的图片文件。
2. `maxSize`:压缩后的图片最大尺寸,单位为像素。
3. `callback`:压缩完成后的回调函数,接受压缩后的 Blob 对象作为参数。
使用示例:
```javascript
var fileInput = document.querySelector('input[type="file"]');
fileInput.addEventListener('change', function() {
var file = fileInput.files[0];
compressImage(file, 800, function(blob) {
// 压缩完成后的处理逻辑
});
});
```
这个示例将选中的图片文件压缩到最大宽度或高度为 800 像素,压缩质量为 80% 的 JPEG 格式,并将压缩后的 Blob 对象传递给回调函数进行处理。
阅读全文