Javascript 无法从用户处获取图像,在div中显示图像,缩放图像并将其附加到正文中
我想从用户那里获取图像,显示它,并允许用户在Javascript 无法从用户处获取图像,在div中显示图像,缩放图像并将其附加到正文中,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想从用户那里获取图像,显示它,并允许用户在div中调整它,然后捕获调整后的图像并将其附加到身体上 <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="html2canvas.js"></script> <script src="Canvas2
div
中调整它,然后捕获调整后的图像并将其附加到身体上
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="html2canvas.js"></script>
<script src="Canvas2Image.js"></script>
<script src="e-smart-zoom-jquery.min.js"></script>
<style type="text/css">
#wrapper {
width: 980px;
height: 500px;
}
</style>
</head>
<body>
<div id="wrapper" style="background-color: white" width="980px" height="500px">
<img id="imageFullScreen" src="https://s-media-cache-ak0.pinimg.com/736x/b5/41/8d/b5418dcc2ab6efa7fe51d8bffd385343.jpg">
</div>
<br/>
<input type="button" id="btnSave" value="Save PNG"/>
<input type="file" accept="image/*" name="photo" id="imgInp" onchange="loadFile(event);"/>
<div id="img-out"></div>
<script type="text/javascript">
$(document).ready(function() {
$('#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'});
function moveButtonClickHandler(e){
var pixelsToMoveOnX = 0;
var pixelsToMoveOnY = 0;
switch(e.target.id){
case "leftPositionMap":
pixelsToMoveOnX = 50;
break;
case "rightPositionMap":
pixelsToMoveOnX = -50;
break;
case "topPositionMap":
pixelsToMoveOnY = 50;
break;
case "bottomPositionMap":
pixelsToMoveOnY = -50;
break;
}
$('#imageFullScreen').smartZoom('pan', pixelsToMoveOnX, pixelsToMoveOnY);
}
});
$(function() {
$("#btnSave").click(function() {
html2canvas($("#wrapper"), {
onrendered: function(canvas) {
var img = canvas.toDataURL("image/png");
$('body').append('<img src="'+img+'"/>');
}
});
});
});
var loadFile = function(event) {
oldimg = $('.imageFullScreen').attr('src');
var preview = document.getElementById('imageFullScreen');
preview.src = URL.createObjectURL(event.target.files[0]);
newimg = preview.src;
if(newimg.indexOf('/null') > -1) {
preview.src = oldimg;
$('#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'});
}
};
</script>
</body>
</html>
#包装纸{
宽度:980px;
高度:500px;
}
$(文档).ready(函数(){
$(#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'});
功能moveButtonClickHandler(e){
var pixelsToMoveOnX=0;
var pixelsToMoveOnY=0;
开关(如target.id){
案例“leftPositionMap”:
pixelsToMoveOnX=50;
打破
案例“rightPositionMap”:
pixelsToMoveOnX=-50;
打破
案例“topPositionMap”:
pixelsToMoveOnY=50;
打破
案例“底部位置图”:
pixelsToMoveOnY=-50;
打破
}
$(#imageFullScreen').smartZoom('pan',pixelsToMoveOnX,pixelsToMoveOnY);
}
});
$(函数(){
$(“#btnSave”)。单击(函数(){
html2canvas($(“#包装”){
onrendered:函数(画布){
var img=canvas.toDataURL(“image/png”);
$('body')。追加('');
}
});
});
});
var loadFile=函数(事件){
oldimg=$('.imageFullScreen').attr('src');
var preview=document.getElementById('imageFullScreen');
preview.src=URL.createObjectURL(event.target.files[0]);
newimg=preview.src;
if(newimg.indexOf('/null')>-1){
preview.src=oldimg;
$(#imageFullScreen').smartZoom({'containerClass':'zoomableContainer'});
}
};
我可以使用src
属性显示图像,并缩放和拖动它,但无法从用户处获取图像
尝试改用FileReader
var reader = new FileReader();
$(document).ready(function() {
reader.addEventListener("load", function() {
var preview = document.getElementById('imageFullScreen');
$('#imageFullScreen').smartZoom("destroy");
preview.src = reader.result;
$('#imageFullScreen').smartZoom();
}, false);
$("#imgInp").on("change", function(event) {
if (event.target.files[0]) {
reader.readAsDataURL(event.target.files[0]);
}
});
function moveButtonClickHandler(e) {
var pixelsToMoveOnX = 0;
var pixelsToMoveOnY = 0;
switch (e.target.id) {
case "leftPositionMap":
pixelsToMoveOnX = 50;
break;
case "rightPositionMap":
pixelsToMoveOnX = -50;
break;
case "topPositionMap":
pixelsToMoveOnY = 50;
break;
case "bottomPositionMap":
pixelsToMoveOnY = -50;
break;
}
$('#imageFullScreen').smartZoom('pan', pixelsToMoveOnX, pixelsToMoveOnY);
}
});
$('#imageFullScreen').smartZoom();
$(function() {
$("#btnSave").click(function() {
html2canvas($("#wrapper"), {
onrendered: function(canvas) {
var img = canvas.toDataURL("image/png");
$('body').append('<img src="' + img + '"/>');
}
});
});
});
var reader=newfilereader();
$(文档).ready(函数(){
reader.addEventListener(“加载”,函数(){
var preview=document.getElementById('imageFullScreen');
$(“#图像全屏”).smartZoom(“销毁”);
preview.src=reader.result;
$(“#图像全屏”).smartZoom();
},假);
$(“#imgInp”)。关于(“更改”,函数(事件){
if(event.target.files[0]){
reader.readAsDataURL(event.target.files[0]);
}
});
功能moveButtonClickHandler(e){
var pixelsToMoveOnX=0;
var pixelsToMoveOnY=0;
开关(如target.id){
案例“leftPositionMap”:
pixelsToMoveOnX=50;
打破
案例“rightPositionMap”:
pixelsToMoveOnX=-50;
打破
案例“topPositionMap”:
pixelsToMoveOnY=50;
打破
案例“底部位置图”:
pixelsToMoveOnY=-50;
打破
}
$(#imageFullScreen').smartZoom('pan',pixelsToMoveOnX,pixelsToMoveOnY);
}
});
$(“#图像全屏”).smartZoom();
$(函数(){
$(“#btnSave”)。单击(函数(){
html2canvas($(“#包装”){
onrendered:函数(画布){
var img=canvas.toDataURL(“image/png”);
$('body')。追加('');
}
});
});
});
这是你的电话号码
编辑:您必须在更改src之前销毁smartZoom对象,然后重新初始化它。现在,可以上载图像,但在缩放或拖动图像时会出现混乱,捕获按钮仍然无法正常工作。我认为jquery库不支持blob图像。我正在努力解决它。除了捕获按钮,其他一切都正常工作。它仍然不工作。你说不工作是什么意思?对我来说,它捕获了预览中看到的图像。你想让它以另一种方式工作吗?问题是,这是当用户上传图像时,这是当图像被放大时,这是捕获的图像