imgareaselect:使用定义的图像高度和宽度裁剪图像

时间:2013-11-19 06:52:30

标签: jquery asp.net css imageareaselect

我正在使用jquery插件进行预览裁剪图像。问题是,当我上传图像时,它会显示全长为1280 * 1024的图像。我希望无论图像大小如何,都会显示固定长度为300 * 300。

没有给出尺寸的Aspx代码可以正常工作:

 <img id="Img_UploadLogo" runat="server" src=""/>

和jquery是:

<script type="text/javascript">
    function preview(img, selection) {
        if (!selection.width || !selection.height)           
            return;

        var scaleX = 175 / (selection.width || 1); // width height of preview image div
        var scaleY = 85 / (selection.height || 1);
        var Width = $('#<%=Img_UploadLogo.ClientID %>').width(); // width height of preview image div
        var Height = $('#<%=Img_UploadLogo.ClientID %>').height();

        $('#preview img').css({

            width: Math.round(scaleX *Width ) + 'px', // width of orgnal image div
            height: Math.round(scaleY *Height ) + 'px',
            marginLeft: -Math.round(scaleX * selection.x1),
            marginTop: -Math.round(scaleY * selection.y1)            

        });



        $('#<%=x1.ClientID %>').val(selection.x1);
        $('#<%=y1.ClientID %>').val(selection.y1);
        $('#<%=x2.ClientID %>').val(selection.x2);
        $('#<%=y2.ClientID %>').val(selection.y2);
        $('#<%=w.ClientID %>').val(selection.width);
        $('#<%=h.ClientID %>').val(selection.height);

    }

    $(function () {
        $('#<%=Img_UploadLogo.ClientID %>').imgAreaSelect({aspectRatio: '1:1', x1: 120, y1: 90, x2: 280, y2: 210, show: false, handles: true,
            fadeSpeed: 200, onSelectChange: preview,
        });
    });

</script>
上面的代码对我来说很好。它显示正确的预览和正确的裁剪图像。但是当我像下面那样给图像赋予固定大小时,它会显示正确的预览,但裁剪图像不正确。

当我给它修复大小时,没有正确裁剪图像: 提供尺寸的Aspx代码与裁剪图像不一致:

 <img id="Img_UploadLogo" runat="server" src="" style="width: 300px; height: 300px;"/>

请建议我解决方案,以便完美裁剪图像。

0 个答案:

没有答案