js实现浏览器中图片框选指定位置马赛克代码
代码语言:html
所属分类:其他
代码描述:js实现浏览器中图片框选指定位置马赛克代码
代码标签: js 浏览器 图片 框选 指定 位置 马赛克 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>图片局部马赛克并下载</title>
<style>
:root {
color-scheme: light dark;
--bg: #f6f7f9;
--fg: #1f2328;
--primary: #2f81f7;
--border: #d0d7de;
--muted: #6e7781;
}
html, body {
height: 100%;
margin: 0;
background: var(--bg);
color: var(--fg);
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
}
.wrap {
max-width: 1100px;
margin: 24px auto 48px;
padding: 0 16px;
}
h1 {
font-size: 20px;
margin: 4px 0 16px;
}
.toolbar {
display: flex;
flex-wrap: wrap;
gap: 12px 16px;
align-items: center;
margin-bottom: 12px;
}
.file-label {
position: relative;
display: inline-flex;
align-items: center;
gap: 8px;
padding: 8px 12px;
border: 1px solid var(--border);
border-radius: 8px;
background: white;
cursor: pointer;
user-select: none;
}
.file-label input[type="file"] {
position: absolute; inset: 0; opacity: 0; cursor: pointer;
}
.slider {
display: inline-flex;
align-items: center;
gap: 8px;
color: var(--muted);
white-space: nowrap;
}
input[type="range"] { vertical-align: middle; }
button {
padding: 8px 12px;
border: 1px solid var(--border);
border-radius: 8px;
background: white;
cursor: pointer;
}
button.primary {
background: var(--primary);
color: #fff;
border-color: transparent;
}
button:disabled {
opacity: 0.6;
cursor: not-allowed;
}
.stage {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
background: #f0f2f5;
border: 2px dashed #c5cbd3;
border-radius: 10px;
overflow: hidden;
display: grid;
place-items: center;
transition: border-color .2s ease, background .2s ease;
}
.stage.has-image {
/* [修复] 移除 aspect-ratio: auto; 并优化背景 */
border-style: solid;
background: none;
}
.stage.dragover {
border-color: var(--primary);
background: #eef5ff;
}
canvas {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
image-rendering: auto;
touch-action: none; /* 避免触摸滚动干扰 */
}
#overlay { cu.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0