Jquery图像编辑器或在我上传的图像上添加文本

时间:2014-09-23 15:29:38

标签: javascript jquery html image editor

我讨厌jquery的一些实现,我找不到适合我的需求。

我需要从我的电脑上传图像,并能像我一样改变背景颜色(我应该使用透明部分的png图像)。

我希望能够在我已经可以管理的浏览器上上传的图像上添加一些图标和文字。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">

    <title>Untitled Document</title>
    <script src=
    "http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" type=
    "text/javascript"></script>
    <script>
$(document).ready(function() {
        $("#color").change(function(){
            var clr = $(this).val();
            $("#bgcolor").css("background-color",clr);
        });
    });
         function showMyImage(fileInput) {
            var files = fileInput.files;
            for (var i = 0; i < files.length; i++) {           
                var file = files[i];
                var imageType = /image.*/;     
                if (!file.type.match(imageType)) {
                    continue;
                }           
                var img=document.getElementById("thumbnil");            
                img.file = file;    
                var reader = new FileReader();
                reader.onload = (function(aImg) { 
                    return function(e) { 
                        aImg.src = e.target.result; 
                    }; 
                })(img);
                reader.readAsDataURL(file);
            }    
        }
    </script>
    <style type="text/css">
.upload input{
      display: none;
    }

    .upload label{
      background: DarkSlateBlue;
      color: white;
      padding: 2px 10px;
    }

    #keyConfContainer {
        height: 300px;
        width: 487px;
        border: 1px solid #000;
    }
    #keyconfTittle {
        text-transform: uppercase;
        height: 25px;
        width: 487px;
    }
    #keycap {
        float: left;
        height: 243px;
        width: 243px;
        border: 1px solid #000;
    }
    #options {
        height: 25px;
        width: 242px;
        float: right;
    }
    #menu {
        float: right;
        height: 250px;
        width: 242px;
    }
    #keycapconf {
        float: right;
        height: 275px;
        width: 242px;
    }
    </style>
</head>

<body>
    <div id="keyConfContainer">
        <div id="keyconfTittle">
            Modify a keycap
        </div>


        <div id="keycap">
            <div class="upload">
                <label for="my-input">Upload your image</label> <input accept=
                "image/*" id="my-input" name="" onchange="showMyImage(this)"
                type="file">
            </div>
            <br>


            <div id="bgcolor"><img alt="" id="thumbnil" src="" style=
            "width:100%; margin-top:10px;">
            </div>
        </div>


        <div id="keycapconf">
            <div id="options">
            </div>


            <div id="menu">
                Blackground-color: <input id="color" type="color"><br>
                Clip art library: 
                <!-- implementar la ventana con las imagenes--><br>
                Upload your image:

                <form action="demo_form.asp">
                    <input accept="image/*" name="pic" type="file" value=
                    "Upload a image"> <input type="submit" value="Change">
                </form>
            </div>
        </div>
    </div>
</body>
</html>

这是jsfidlebut imageuploading不起作用的链接。 http://jsfiddle.net/nmpj3qdp/

有什么想法吗?有什么jquery可以满足我的要求吗?

1 个答案:

答案 0 :(得分:0)

这是一个更新的fiddle

您需要添加

$('#imageFile').on('change', function(){ showMyImage(); });

并更改showMyImage中的行以将文件转换为

 var files = $('#imageFile').prop("files");

我不知道你更换颜色是什么意思。如果您想修改已加载的图片,可以查看plugins

<强>更新

http://jsfiddle.net/nmpj3qdp/2/

这会更改图像所在div的背景颜色,但除非您找到插件,否则无法在客户端更改.png的背景颜色。