.tool-header { max-width:720px; margin:0 auto; padding:40px 24px 12px; } .tool-header h1 { font-size:clamp(22px,4vw,30px); font-weight:700; background:linear-gradient(135deg,#e9e9f5,#a09fb1); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; margin-bottom:4px; } .tool-sub { color:var(--noir-text-tertiary); font-size:13px; } .tool-container { max-width:720px; margin:0 auto; padding:0 24px 48px; } .tool-card { background:var(--noir-bg-elevated); border:1px solid var(--noir-border-light); border-radius:16px; padding:24px; margin-bottom:16px; box-shadow:var(--noir-shadow-sm); } .tool-card h3 { font-size:15px; font-weight:600; margin:0 0 12px; color:var(--noir-text-primary); } .drop-zone { border:2px dashed var(--noir-border-light); border-radius:12px; padding:40px 20px; text-align:center; cursor:pointer; transition:all .2s; color:var(--noir-text-tertiary); } .drop-zone:hover, .drop-zone.dragover { border-color:var(--noir-accent); background:rgba(91,135,49,0.08); color:var(--noir-text-secondary); } .drop-zone svg { width:36px; height:36px; margin-bottom:8px; opacity:.5; } .preview-row { display:flex; gap:16px; flex-wrap:wrap; } .preview-box { flex:1; min-width:180px; } .preview-box .plab { font-size:11px; color:var(--noir-text-tertiary); margin-bottom:4px; display:flex; justify-content:space-between; } .preview-box .pinfo { font-size:12px; color:var(--noir-text-secondary); margin-top:4px; word-break:break-all; } .preview-box img { width:100%; border-radius:8px; background:var(--noir-bg-tertiary); max-height:220px; object-fit:contain; } .ctrl-group { margin:14px 0; } .ctrl-group .cl { font-size:12px; color:var(--noir-text-secondary); margin-bottom:4px; display:flex; justify-content:space-between; } .ctrl-group .cl .cv { font-size:13px; font-weight:600; color:var(--noir-text-primary); } .ctrl-group input[type="range"] { width:100%; accent-color:var(--noir-accent); height:4px; } .ctrl-row { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin:12px 0; } .ctrl-row label { font-size:12px; color:var(--noir-text-secondary); white-space:nowrap; } select.tsel { background:var(--noir-bg-tertiary); border:1px solid var(--noir-border-light); color:var(--noir-text-primary); padding:6px 12px; border-radius:8px; font-size:13px; outline:none; cursor:pointer; } select.tsel:focus { border-color:var(--noir-accent); } input.tinp { background:var(--noir-bg-tertiary); border:1px solid var(--noir-border-light); color:var(--noir-text-primary); padding:6px 12px; border-radius:8px; font-size:13px; outline:none; width:80px; } input.tinp:focus { border-color:var(--noir-accent); } .home-btn { position:fixed; top:16px; left:16px; z-index:100; width:36px; height:36px; border-radius:50%; background:var(--noir-bg-elevated); backdrop-filter:blur(20px); border:1px solid var(--noir-border-light); display:flex; align-items:center; justify-content:center; color:var(--noir-text-primary); text-decoration:none; transition:all .2s; box-shadow:var(--noir-shadow-xs); } .home-btn:hover { box-shadow:var(--noir-shadow-md); transform:scale(1.08); } .btn-primary { display:inline-flex; align-items:center; gap:6px; padding:10px 24px; border-radius:9999px; font-size:14px; font-weight:500; background:var(--noir-accent); color:var(--noir-text-inverse); border:none; cursor:pointer; transition:all .2s; text-decoration:none; } .btn-primary:hover { filter:brightness(1.12); } .btn-primary:disabled { opacity:.4; cursor:not-allowed; filter:none; } .btn-secondary { display:inline-flex; align-items:center; gap:6px; padding:10px 24px; border-radius:9999px; font-size:14px; font-weight:500; background:var(--noir-bg-tertiary); color:var(--noir-text-primary); border:1px solid var(--noir-border-light); cursor:pointer; transition:all .2s; } .btn-secondary:hover { border-color:var(--noir-border-medium); } .badge { display:inline-block; padding:2px 8px; border-radius:9999px; font-size:11px; font-weight:500; } .badge.gr { background:rgba(34,197,94,0.15); color:#22c55e; } .badge.rd { background:rgba(239,68,68,0.15); color:#ef4444; } .fname { font-size:12px; color:var(--noir-text-tertiary); margin:6px 0; word-break:break-all; } @media(max-width:640px){ .tool-container { padding:0 12px 32px; } .preview-row { flex-direction:column; } }

图片压缩

浏览器本地处理,不上传服务器

拖拽图片到这里,或点击选择文件