Javascript 如何使用JS加载本地图像?
我想在脚本中加载两个单独的图像。我已经通过以下方式完成了:Javascript 如何使用JS加载本地图像?,javascript,Javascript,我想在脚本中加载两个单独的图像。我已经通过以下方式完成了: <img src="iphone4.png" id="img1"> <img src="screenshot.png" id="img2"> <script> window.onload = function () { var img1 = document.getElementById('img1'); var img2 = docu
<img src="iphone4.png" id="img1">
<img src="screenshot.png" id="img2">
<script>
window.onload = function () {
var img1 = document.getElementById('img1');
var img2 = document.getElementById('img2');
</script>
但这并不奏效。
有一些常识的人能给我一些关于这个问题的意见吗
编辑:
这就是markup/JS现在的样子,图像仍然显示,图像的最终合并不会显示。我得到的错误是:
IndexSizeError: Index or size is negative or greater than the allowed amount
[Stanna vid fel]
var image1 = context.getImageData(0, 0, width, height);
这就是语法:
<body>
<img src="" id="img1">
<img src="" id="img2">
<p>Blended image<br><canvas id="canvas"></canvas></p>
<script>
window.onload = function () {
var img1 = document.getElementById('img1');
var img2 = document.getElementById('img2');
img1.src = "iphone4.png";
img2.src = "screenshot.png";
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
var width = img1.width;
var height = img1.height;
canvas.width = width;
canvas.height = height;
var pixels = 4 * width * height;
context.drawImage(img1, 0, 0);
var image1 = context.getImageData(0, 0, width, height);
var imageData1 = image1.data;
context.drawImage(img2, 73, 265);
var image2 = context.getImageData(0, 0, width, height);
var imageData2 = image2.data;
while (pixels--) {
imageData1[pixels] = imageData1[pixels] * 0 + imageData2[pixels] * 1;
}
image1.data = imageData1;
context.putImageData(image1, 0, 0);
};
</script>
混合图像
window.onload=函数(){
var img1=document.getElementById('img1');
var img2=document.getElementById('img2');
img1.src=“iphone4.png”;
img2.src=“screenshot.png”;
var canvas=document.getElementById(“canvas”);
var context=canvas.getContext(“2d”);
变量宽度=img1.width;
var高度=img1.height;
画布宽度=宽度;
canvas.height=高度;
可变像素=4*宽度*高度;
drawImage(img1,0,0);
var image1=context.getImageData(0,0,宽度,高度);
var imageData1=image1.data;
背景。drawImage(img2,73265);
var image2=context.getImageData(0,0,宽度,高度);
var imageData2=image2.data;
而(像素--){
imageData1[像素]=imageData1[像素]*0+imageData2[像素]*1;
}
image1.data=imageData1;
putImageData(image1,0,0);
};
编辑:不要这样做,您的图像将不会显示
document.body.append(img1);
或
编辑:不要这样做,您的图像将不会显示
document.body.append(img1);
或
HTML5有一种方法,但它仍然需要用户将文件放入放置目标或使用方框 使用文件API,您可以读取文件,并可能对其进行解码 但是,实际上读取文件blob并在本地显示它可能很棘手。您可以使用FileReader.readAsDataURL方法将内容设置为图像标记的data:URL 示例:
$('#f').on('change', function(ev) {
var f = ev.target.files[0];
var fr = new FileReader();
fr.onload = function(ev2) {
console.dir(ev2);
$('#i').attr('src', ev2.target.result);
};
fr.readAsDataURL(f);
});
请参见此处的工作小提琴:
HTML5有一种方法,但它仍然需要用户将文件放入放置目标或使用方框 使用文件API,您可以读取文件,并可能对其进行解码 但是,实际上读取文件blob并在本地显示它可能很棘手。您可以使用FileReader.readAsDataURL方法将内容设置为图像标记的data:URL 示例:
$('#f').on('change', function(ev) {
var f = ev.target.files[0];
var fr = new FileReader();
fr.onload = function(ev2) {
console.dir(ev2);
$('#i').attr('src', ev2.target.result);
};
fr.readAsDataURL(f);
});
请参见此处的工作小提琴:
使用jquery:
$('#my_image').attr('src','image.jpg');
使用javasript:
document.getElementById("my_image").src="image.jpg";
只需使用jquery检查图像的路径:
$('#my_image').attr('src','image.jpg');
使用javasript:
document.getElementById("my_image").src="image.jpg";
只需检查图像的路径即可您可以创建一个
图像
,而无需在标记中添加实际标记:
var img = new Image();
img.src = 'iphone4.png';
//use img however you want
希望这有帮助。您可以创建一个
图像
,而无需在标记中添加实际标记:
var img = new Image();
img.src = 'iphone4.png';
//use img however you want
希望这有帮助。在head block中编写以下代码
<script>
window.onload = function () {
document.getElementById("img1").src="iphone4.png";
document.getElementById("img2").src="screenshot.png";
}
</script>
window.onload=函数(){
document.getElementById(“img1”).src=“iphone4.png”;
document.getElementById(“img2”).src=“screenshot.png”;
}
这会奏效的
谢谢在标题栏中写下下面的代码
<script>
window.onload = function () {
document.getElementById("img1").src="iphone4.png";
document.getElementById("img2").src="screenshot.png";
}
</script>
window.onload=函数(){
document.getElementById(“img1”).src=“iphone4.png”;
document.getElementById(“img2”).src=“screenshot.png”;
}
这会奏效的
谢谢
“我正在做的是使用JS合并两个图像”
您的问题可能是因为您正在尝试绘制尚未加载的图像。为了避免此问题,您可以动态创建图像,并设置其src
属性以开始加载图像,并侦听图像的加载事件以了解它们何时完全加载,以便安全地执行合并
我还没有测试过代码,但它应该会给你一个想法
var图像=[
“iphone4.png”,
'screenshot.png'
],
len=图像长度,
i=0,
loadedCount=0,
img;
对于(;i
“我正在做的是使用JS合并两个图像”
您的问题可能是因为您正在尝试绘制尚未加载的图像。为了避免此问题,您可以动态创建图像,并设置其src
属性以开始加载图像,并侦听图像的加载事件以了解它们何时完全加载,以便安全地执行合并
我还没有测试过代码,但它应该会给你一个想法
var图像=[
“iphone4.png”,
'screenshot.png'
],
len=图像长度,
i=0,
loadedCount=0,
img;
对于(;i
但这似乎仍然显示[img1]和[img2]标记中的图像?如果我错了,请纠正我,但这看起来也会在标记中的body(或新div)下添加标记并使其可见