如何在上传之前设置图像的最大宽度和最大高度

时间:2013-10-04 06:06:47

标签: javascript jquery css

我想知道如何在上传图像之前设置最大宽度和最大高度。因此,当您单击选择文件时,您选择了您的图片并将其加载以便您可以看到它。然后你裁剪它然后最终选择上传以将其保存在目录中我现在的问题是如何设置最大宽度和最大高度,然后在选择选择文件后在提示选择它之后有机会预览它。

一旦选择文件,如果图像高于最大高度和最大宽度,则抛出一条消息并要求他们提供更小的图片

HTML CODE:

<img id="uploadPreview" style="display:none;"/>

<!-- image uploading form -->
<form action="upload.php" method="post" enctype="multipart/form-data">
<input id="uploadImage" type="file" accept="image/jpeg" name="image"/>
<input type="submit" value="Upload">

<!-- hidden inputs -->
<input type="hidden" id="x" name="x" />
<input type="hidden" id="y" name="y" />
<input type="hidden" id="w" name="w" />
<input type="hidden" id="h" name="h" />
</form>

Jquery代码:

function setInfo(i, e) {
    $('#x').val(e.x1);
    $('#y').val(e.y1);
    $('#w').val(e.width);
    $('#h').val(e.height);
}

$(document).ready(function() {
    var p = $("#uploadPreview");

    // prepare instant preview
    $("#uploadImage").change(function(){
        // fadeOut or hide preview
        p.fadeOut();

        // prepare HTML5 FileReader
        var oFReader = new FileReader();
        oFReader.readAsDataURL(document.getElementById("uploadImage").files[0]);

        oFReader.onload = function (oFREvent) {
            p.attr('src', oFREvent.target.result).fadeIn();
        };
    });

    // implement imgAreaSelect plug in (http://odyniec.net/projects/imgareaselect/)
    $('img#uploadPreview').imgAreaSelect({
        // set crop ratio (optional)
        aspectRatio: '1:1',
        onSelectEnd: setInfo
    });
});

2 个答案:

答案 0 :(得分:0)

这是您需要编辑的部分

aspectRatio:'1:1',

尝试这个方面比率:'1:1.3',

你会看到裁剪区域的比例会发生变化

答案 1 :(得分:-1)

您使用Jcrop裁剪图像吗? 如果是,那么他们提供了限制maxWidth和maxHeight的参数..

如果您使用自定义div将预览图像重叠为acropped region,则将maxwidth和maxheight设置为该div。

例如。

setSelect: [ 50, 50, 274, 196 ],
                maxSize: [224, 146],
                minSize: [224, 146],