Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jCrop调整图像大小以适应所有纵横比?_Javascript_Jquery_Jcrop - Fatal编程技术网

Javascript 如何使用jCrop调整图像大小以适应所有纵横比?

Javascript 如何使用jCrop调整图像大小以适应所有纵横比?,javascript,jquery,jcrop,Javascript,Jquery,Jcrop,我使用Jcrop来调整纵横比为1的图像的大小。大多数情况下效果很好,但在某些情况下,当图像更宽时,我无法选择所有图像。我可以为选择图像的全部内容执行什么操作 我的代码是: function readURL(input) { if (input.files && input.files[0]) { var reader = new FileReader(); reader.onload = function(e) { $('#jimage').attr('src'

我使用Jcrop来调整纵横比为1的图像的大小。大多数情况下效果很好,但在某些情况下,当图像更宽时,我无法选择所有图像。我可以为选择图像的全部内容执行什么操作

我的代码是:

function readURL(input) {
if (input.files && input.files[0]) {
  var reader = new FileReader();
  reader.onload = function(e) {
    $('#jimage').attr('src', e.target.result);
  }

  reader.readAsDataURL(input.files[0]);
     $('#jimage').Jcrop({
        onSelect:    showCoords,
        aspectRatio: 1,
        bgColor:     '#2e7cce',
        bgOpacity:   .4,
        boxWidth: 500,
    });
}}

我试图添加一些我在网上看到的缩放实现,但是缩放会影响选择区域,结果是一样的。我需要能够选择图像的所有内容。

设置
aspectRatio:1
意味着您始终需要方形选择,如果图像为矩形(高度大于宽度,反之亦然),则无法选择整个图像

一种解决方案是删除
aspectRatio:1
,这将允许自由形式的裁剪

另一种解决方案是在将图像传递给Jcrop之前将其缩放为正方形

reader.onload = function(e) {
  $('#jimage').attr('src', e.target.result);
  width = $('#jimage').width();
  height = $('#jimage').height();
  if(height > width )
    $('#jimage').width(width * (height/width));
  else if(width > height)
    $('#jimage').height(height * (width/height));
}