JCrop削减了图像的边缘

时间:2013-09-24 23:45:18

标签: jquery image crop jcrop

我正在使用jCrop创建一个界面,允许用户将图像裁剪为固定的宽度和高度。它显示原始图像(总是940px宽度,可变高度)并将jCrop选择器覆盖在顶部,具有固定的宽度和高度(940 x 600)。然后使用可以上下移动选择器(不是左和右,因为选择器的宽度与原始图像相同)并选择一部分。裁剪工作正常,除了一件事:原始的,预裁剪的图像(显示jCrop选择器)从左侧缺少几个像素 - 它更像是935px宽。因此,当jCrop裁剪它时,结果是左边缘有一个薄的黑色边框。代码:

<script language="Javascript">
  jQuery(function($) {      

    $('#target').Jcrop({
      keySupport: false,
      minSize: [940,600],
      maxSize: [940,600],           
      setSelect: [0,0,940,600],
      onSelect: updateCoords
    });

    function updateCoords(c)
    {
      $('#x').val(c.x);
      $('#y').val(c.y);
      $('#w').val(c.w);
      $('#h').val(c.h);
    };

  });
</script>

<img src="carousel.jpg" id="target" border="0" width="940" />

<form action="crop" method="post">
  <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" />
  <input type="submit" value="Crop Image" />                            
</form>

任何想法都非常感激。

编辑:

查看生成的源代码,我看到jCrop正在向显示的图像添加样式“width:935px”。但为什么呢?

<img style="display: none; visibility: hidden; width: 935px; height: 701px;" src="carousel.jpg" id="target" border="0" width="940">
<div class="jcrop-holder" style="width: 935px; height: 701px; position: relative; background-color: black;">
<div style="position: absolute; z-index: 600; width: 940px; height: 600px; top: 0px; left: -5px;">
<div style="width: 100%; height: 100%; z-index: 310; position: absolute; overflow: hidden;">
<img style="border: medium none; visibility: visible; margin: 0px; padding: 0px; position: absolute; top: 0px; left: 5px; width: 935px; height: 701px;" src="carousel.jpg">

编辑2:

我正在使用Twitter Bootstrap。我从this jCrop issue看到存在冲突,但所描述的问题与我的不一样,我尝试过max-width:none解决方案,但无济于事。

1 个答案:

答案 0 :(得分:0)

我最后通过将要裁剪的图像放入a并将其子图像设置为“width:940px”来修复它。

我没有发现问题的原因是什么,也许是与Bootstrap的冲突。