ImageCompress
关于
隐私
登录
查看用户信息
管理后台
注销登录
简单强大的图片压缩
立即优化你的 JPG、PNG 或 WebP 文件。轻松减少文件大小,同时保持良好的视觉质量。
⬆
将图片拖到此处
支持拖拽上传,或点击下方按钮选择文件
选择文件
压缩队列
已上传图片
删除选中
删除全部
ID
文件名
类型
大小
MD5
压缩任务
ID
图片ID
格式
质量
状态
大小
操作
压缩设置
运行模式
本地模式(默认,省服务器)
服务器模式(需登录)
未登录将强制使用本地模式;登录后可切换服务器模式以获得云端任务/下载。
并发数(本地压缩)
1(最稳)
2(推荐)
3
4(可能卡顿)
最大宽度(0 不限制)
最大高度(0 不限制)
PNG 透明处理(转 JPEG 时)
背景填充白色(推荐)
背景填充黑色
尽量保留透明(将自动改用 WebP/PNG 输出)
质量:
80
%
格式
JPEG
PNG
WebP
全部压缩
全部下载
清除记录
上传图片
选择预览
上传更多
登录
用户名或邮箱
密码
登录
注册并登录
退出登录
结束前加这一小段 --> // 清理因带 redirect 参数跳返首页而残留的 login.html 片段 (function removeAuthGhost(){ var auth = document.getElementById('auth'); if (auth && auth.parentElement) auth.parentElement.removeChild(auth); var me = document.getElementById('me'); if (me && me.parentElement) me.parentElement.removeChild(me); })(); (function(){ var s=document.createElement('script'); s.src = (location.protocol === 'file:' ? './app.v2.js?v=20251228' : '/app.js?v=20251209'); document.head.appendChild(s); function navTo(p){ location.href = (location.protocol==='file:'? p : '/'+p); } var navLogin = document.getElementById('nav-login'), navAbout = document.getElementById('nav-about'), navPrivacy = document.getElementById('nav-privacy'); // 登录按钮的行为交给 app.js 按登录状态动态控制,这里不做默认跳转绑定 if (navAbout) navAbout.addEventListener('click', function(){ navTo('about.html'); }); if (navPrivacy) navPrivacy.addEventListener('click', function(){ navTo('privacy.html'); }); })(); (function(){ var drop = document.getElementById('drop-area'), input = document.getElementById('file-input'), btnBrowse = document.getElementById('btn-browse'), btnUploadMore = document.getElementById('btn-upload-more'); function stop(e){ e.preventDefault(); e.stopPropagation(); } ['dragenter','dragover','dragleave','drop'].forEach(ev=>{ document.addEventListener(ev, stop, false); drop.addEventListener(ev, stop, false); }); drop.addEventListener('dragover', ()=>{ drop.style.borderColor='#b8bfff'; }, false); drop.addEventListener('dragleave', ()=>{ drop.style.borderColor='#d9ddee'; }, false); drop.addEventListener('drop', (e)=>{ drop.style.borderColor='#d9ddee'; if(e.dataTransfer && e.dataTransfer.files && e.dataTransfer.files.length){ input.files = e.dataTransfer.files; var btn = document.getElementById('btn-upload'); if (btn) btn.click(); } }, false); function browse(){ input.click(); } if(btnBrowse) btnBrowse.addEventListener('click', browse); if(btnUploadMore) btnUploadMore.addEventListener('click', browse); var q = document.getElementById('quality'), qv = document.getElementById('qv'); if(q && qv){ q.addEventListener('input', ()=>{ qv.textContent = q.value; }); } window.addEventListener('load', function(){ var btnAll = document.getElementById('btn-download-all'); if(!btnAll) return; btnAll.addEventListener('click', function(){ if(!window.state || !Array.isArray(window.state.tasks)){ alert('暂无可下载任务'); return; } var finished = window.state.tasks.filter(t=>t.status===1); if(!finished.length){ alert('暂无已完成任务'); return; } finished.forEach(async t=>{ try{ if(window.downloadById){ await window.downloadById(t.id); } }catch(e){ console.error('download all failed', e); } }); }); }); })();