【发布时间】:2021-11-20 09:17:32
【问题描述】:
如何通过上传不同的图像正确设置图像高度,每次用户上传不同尺寸的图像时,我需要设置固定宽度和高度需要正确适合宽度(我的意思是与宽度成正比)。另外考虑其他更好的解决方案。
$(".upload-button").on('click', function() {
$(".file-upload").click();
});
var fileReader = new FileReader();
fileReader.onload = function(event) {
var image = new Image();
image.onload = function() {
var canvas = document.createElement("canvas");
var context = canvas.getContext("2d");
canvas.width = 500;
canvas.height = 380;
//canvas.height=image.height/1;
$('#upload-preview').width(500); //pixels
context.drawImage(image, 0, 0, image.width, image.height, 0, 0,
canvas.width,
canvas.height
);
document.getElementById("upload-preview").src = canvas.toDataURL();
}
image.src = event.target.result;
};
var uploadImage = function() {
var uploadImage = document.getElementById("upload-Image");
if (uploadImage.files.length === 0) {
return;
}
var uploadFile = document.getElementById("upload-Image").files[0];
fileReader.readAsDataURL(uploadFile);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="upload-button" id="imageresize"><img id="upload-preview" class="profile-pic" src="add-image.png" /></div>
<input id="upload-Image" class="file-upload" type="file" name="my_file" onchange="uploadImage();" accept="image/*">
【问题讨论】:
-
我无法理解您的问题。根据您的代码,您正在为画布设置高度和宽度。因此,无论使用什么图片上传,它都会根据您的高度和宽度调整大小。不是你想要的吗?
-
@SANGEETHKUMARSG 我需要高度与宽度成正比,如何设置自动高度
-
proportional to width是什么意思?? -
@Saeed 我不想拉伸图像。我如何设置与宽度成比例的动态高度,我的意思是我们在 html 上设置高度自动,就像那样。
-
这里为什么需要画布?
标签: javascript html