gpt4 book ai didi

javascript - 将数组列表 javascript 中的图像修复为页面背景

转载 作者:行者123 更新时间:2023-12-02 14:25:02 24 4
gpt4 key购买 nike

如果用户想要更改,我正在尝试添加图像作为 html 页面的背景。所以我所做的是,我使用输入文件类型来访问本地文件夹,我也可以让他们选择他们想要的任何图像。但现在我想如何使用户选择的图像固定为页面背景图像。这是我的代码。这主要类似于桌面背景或智能手机壁纸

index.html

<!DOCTYPE html>
<html>
<head>
<title>Understanding File upload and File access Javascript</title>
</head>
<body>
<input type = "file" id = "files" name = "files[]" multiple></input>
<output id = "list"></output>
</body>
<script src = "fileaccess.js" type = "text/javascript"></script>
</html>

fileaccess.js

if(window.File && window.FileReader && window.FileList && window.Blob){
alert("Yes, its supported in this browser");
}else{
alert('The File APIs are not fully supported in this browser.');
}

function handleFileSelect(evt){
var files = evt.target.files;
var output = [];
for(var i = 0, f; f = files[i]; i++){
output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a',') - ',
f.size, 'bytes, last modified: ',
f.lastModifiedDate ? f.lastModifiedDate.toLocaleDateString() : 'n/a',
'</li>');
}
document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';

}
document.getElementById('files').addEventListener('change', handleFileSelect, false);

请大家帮忙!

最佳答案

您需要实例化一个FileReader,通过readAsDataURL()读取所选图像,并将结果数据url分配给body.style.backgroundImage >.

如果您希望用户选择图像的选择,则需要将文件加载到图像或 Canvas 元素,然后允许用户选择显示图像的一部分,最后将图像选择复制到关闭-屏幕 Canvas 。然后,您可以将 Canvas 的数据 url 分配给 body.style.backgroundImage:

function imageToBackground(image, x, y, width, height) {
var canvas = document.createElement("canvas");
canvas.width = width;
canvas.height = height;
var context = canvas.getContext("2d");
context.drawImage(image, x, y, width, height, 0, 0, width, height);
document.body.style.backgroundImage = "url(" + canvas.toDataURL() + ")";
}

function readImage(file, image) {
var reader = new FileReader();
reader.addEventListener("load", function() {
image.src = reader.result;
});
reader.readAsDataURL(file);
}

var file = document.getElementById("file");
var image = document.getElementById("image");
var button = document.getElementById("button");

file.addEventListener("change", function(event) {
var file = event.target.files[0];
if (file) readImage(file, image);
});

button.addEventListener("click", function(event) {
// Todo: let the user chose the region
imageToBackground(image, 0, 0, 100, 100);
});
<input type="file" id="file">
<image id="image">
<input type="button" id="button" value="Set as background">

您现在需要为用户提供一种选择加载图像区域的方法。选择网络上可用的众多图像裁剪插件之一,或者提出您自己的实现。

关于javascript - 将数组列表 javascript 中的图像修复为页面背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38349851/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com