图片调整大小 - 按尺寸、百分比和社交媒体预设在线调整
按精确尺寸、百分比缩放或社交媒体预设调整图片大小。转换格式、控制质量 — 100%浏览器处理,无需上传服务器。
常见问题
什么是图片调整大小工具?为什么需要它?
图片调整大小工具可以改变图片的像素尺寸。它对于优化网页图片(减少加载时间)、满足社交媒体平台要求(每个平台有特定的图片尺寸)、准备电子邮件模板图片和创建缩略图至关重要。例如,Instagram正方形帖子需要1080x1080像素,YouTube缩略图需要1280x720像素。
如何使用这个图片调整大小工具?
1. 选择调整模式:尺寸(输入精确像素值)、百分比(按比例缩放)或预设(选择社交媒体平台尺寸)。2. 将图片拖放到上传区域。3. 调整设置。4. 可选更改输出格式和质量。5. 点击「全部调整」。6. 单独下载或使用「全部下载(ZIP)」。
我的图片数据安全吗?图片会上传到服务器吗?
您的图片100%安全,绝不会离开浏览器。所有调整大小操作都使用HTML5 Canvas API在客户端执行。没有任何图片数据传输到任何服务器,确保完全隐私。
适应、填充和拉伸模式有什么区别?
适应(Fit)在保持原始宽高比的同时将图片缩放到目标尺寸内。填充(Fill)在保持宽高比的同时完全覆盖目标尺寸,裁剪多余部分。拉伸(Stretch)强制图片匹配精确尺寸,如果宽高比不同可能会变形。大多数情况下推荐使用适应模式。
支持哪些图片格式?
支持三种常见的网络图片格式:PNG(无损,支持透明度)、JPEG(有质量控制的有损压缩,不支持透明度)和WebP(支持有损和无损模式的现代格式,支持透明度)。调整大小时还可以进行格式转换。
调整大小会影响图片质量吗?
缩小通常能很好地保持质量。放大使用双线性插值,可能产生略微模糊的结果(Canvas API的限制)。对于有损格式(JPEG、WebP),质量滑块控制压缩级别。PNG输出始终无损。
支持的最大文件大小和分辨率是多少?
支持每个文件最大50MB,分辨率最大16384 x 16384像素。批量处理可同时调整最多20张图片。移动设备上由于内存限制,最大分辨率可能较低。
代码示例
// Client-side image resizing using Canvas API
async function resizeImage(file, targetWidth, targetHeight, options = {}) {
const { quality = 0.85, format = null, fitMode = 'fit' } = options;
return new Promise((resolve, reject) => {
const img = new Image();
const url = URL.createObjectURL(file);
img.onload = () => {
URL.revokeObjectURL(url);
const origW = img.naturalWidth;
const origH = img.naturalHeight;
let canvasW, canvasH, drawX = 0, drawY = 0, drawW, drawH;
if (fitMode === 'fit') {
const scale = Math.min(targetWidth / origW, targetHeight / origH);
canvasW = Math.round(origW * scale);
canvasH = Math.round(origH * scale);
drawX = 0; drawY = 0; drawW = canvasW; drawH = canvasH;
} else if (fitMode === 'fill') {
const scale = Math.max(targetWidth / origW, targetHeight / origH);
drawW = Math.round(origW * scale);
drawH = Math.round(origH * scale);
drawX = Math.round((targetWidth - drawW) / 2);
drawY = Math.round((targetHeight - drawH) / 2);
canvasW = targetWidth; canvasH = targetHeight;
} else {
canvasW = targetWidth; canvasH = targetHeight;
drawW = targetWidth; drawH = targetHeight;
}
const canvas = document.createElement('canvas');
canvas.width = canvasW; canvas.height = canvasH;
const ctx = canvas.getContext('2d');
const outputType = format || file.type || 'image/jpeg';
if (outputType === 'image/jpeg') {
ctx.fillStyle = '#ffffff';
ctx.fillRect(0, 0, canvasW, canvasH);
}
ctx.drawImage(img, drawX, drawY, drawW, drawH);
canvas.toBlob(
(blob) => {
if (!blob) { reject(new Error('Resize failed')); return; }
resolve({
blob, width: canvasW, height: canvasH,
originalSize: file.size, resizedSize: blob.size,
});
},
outputType,
outputType === 'image/png' ? undefined : quality
);
};
img.onerror = () => { URL.revokeObjectURL(url); reject(new Error('Failed to load')); };
img.src = url;
});
}
// Usage
const input = document.querySelector('input[type="file"]');
input.addEventListener('change', async (e) => {
const file = e.target.files[0];
const result = await resizeImage(file, 800, 600, { quality: 0.9, fitMode: 'fit' });
console.log(`Resized: ${result.width}x${result.height}, ${result.resizedSize} bytes`);
const url = URL.createObjectURL(result.blob);
const a = document.createElement('a');
a.href = url; a.download = 'resized.jpg'; a.click();
URL.revokeObjectURL(url);
});
社交媒体平台的正确图片尺寸是什么?
工具包含所有主要平台的内置预设:Twitter/X帖子(1200x675)、Instagram动态(1080x1080)、Instagram故事(1080x1920)、Facebook帖子(1200x630)、YouTube缩略图(1280x720)、LinkedIn帖子(1200x627)等。选择「预设」模式并选择目标平台即可一键调整。