从上传字段向 canvas 添加图像时,它被选中但隐藏在 canvas 后面
When adding image to canvas from an upload field it is selected but hidden behind the canvas
函数中的input变量是图片发送自上传输入文件字段
function readURLForSticker(input) {
TypeBelettering = "sticker";
if (input.files && input.files[0]) {
var imgs = new Image();
imgs.onload = function () {
originalImageHeightPX = this.height;
originalImageWidthPX = this.width;
imageHeightMM = originalImageHeightPX * 0.2645833333;
imageWidthMM = originalImageWidthPX * 0.2645833333;
};
imgs.onerror = function () {
alert("not a valid file: " + file.type);
};
urlLogo = _URL.createObjectURL(input.files[0]);
imgs.src = urlLogo;
reader = new FileReader();
reader.onload = function (e) {
imgs.src = e.target.result;
stickerImage = new fabric.Image(imgs);
canvas.add(stickerImage);
canvas.centerObject(stickerImage);
canvas.setActiveObject(stickerImage);
canvas.renderAll();
}
reader.readAsDataURL(input.files[0]);
imageUploaded = true;
}
}
这是输入发送的内容
$("#upload-picture").change(function() {
readURLForSticker(this);
});
当你稍微拖动它时图像可以工作,但对于假人来说它是不可用的。
您提供的代码似乎不完整,因此不要尝试从中创建一个工作示例,这里是一个基本演示,说明如何将图像添加到 Fabric.js canvas 使用文件输入。
var canvas = new fabric.Canvas('canvas');
document.getElementById("uploader").onchange = function(e) {
var reader = new FileReader();
reader.onload = function(e) {
var image = new Image();
image.src = e.target.result;
image.onload = function() {
var img = new fabric.Image(image);
img.set({
left: 100,
top: 100
});
img.scaleToWidth(200);
canvas.add(img).setActiveObject(img).renderAll();
}
}
reader.readAsDataURL(e.target.files[0]);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.5.0/fabric.min.js"></script>
<canvas id="canvas" width="400" height="300" style="border:1px solid black"></canvas>
<input id="uploader" type="file"/>
函数中的input变量是图片发送自上传输入文件字段
function readURLForSticker(input) {
TypeBelettering = "sticker";
if (input.files && input.files[0]) {
var imgs = new Image();
imgs.onload = function () {
originalImageHeightPX = this.height;
originalImageWidthPX = this.width;
imageHeightMM = originalImageHeightPX * 0.2645833333;
imageWidthMM = originalImageWidthPX * 0.2645833333;
};
imgs.onerror = function () {
alert("not a valid file: " + file.type);
};
urlLogo = _URL.createObjectURL(input.files[0]);
imgs.src = urlLogo;
reader = new FileReader();
reader.onload = function (e) {
imgs.src = e.target.result;
stickerImage = new fabric.Image(imgs);
canvas.add(stickerImage);
canvas.centerObject(stickerImage);
canvas.setActiveObject(stickerImage);
canvas.renderAll();
}
reader.readAsDataURL(input.files[0]);
imageUploaded = true;
}
}
这是输入发送的内容
$("#upload-picture").change(function() {
readURLForSticker(this);
});
当你稍微拖动它时图像可以工作,但对于假人来说它是不可用的。
您提供的代码似乎不完整,因此不要尝试从中创建一个工作示例,这里是一个基本演示,说明如何将图像添加到 Fabric.js canvas 使用文件输入。
var canvas = new fabric.Canvas('canvas');
document.getElementById("uploader").onchange = function(e) {
var reader = new FileReader();
reader.onload = function(e) {
var image = new Image();
image.src = e.target.result;
image.onload = function() {
var img = new fabric.Image(image);
img.set({
left: 100,
top: 100
});
img.scaleToWidth(200);
canvas.add(img).setActiveObject(img).renderAll();
}
}
reader.readAsDataURL(e.target.files[0]);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/4.5.0/fabric.min.js"></script>
<canvas id="canvas" width="400" height="300" style="border:1px solid black"></canvas>
<input id="uploader" type="file"/>