繁体   English   中英

画布裁剪:调整图像大小,保持纵横比和居中吗? JsFiddle

[英]Canvas crop: resize image, mantain aspect ration and center? JsFiddle

我想在上传之前存档一些简单的图像调整大小脚本。 我需要允许用户上传图像并调整大小,然后再上传到服务器。 例如,我需要一张400x300的图片,因此,如果用户上传1080x680,我需要使用同一张图片,但以400x300为中心。

.-------.-----.-------.      .------.
|///////|     |///////|      |//////|
|///////| 300 |///////|      |------|
|//1080/|  x  |//680//|  or  | 3x4  |   // = crop
|///////| 400 |///////|      |------|
|///////|     |///////|      |//////|
|///////|_____|///////|      |//////|

到目前为止,我已经完成了:(

http://jsfiddle.net/StartStep/g25J6/5/

由我自己解决,这很困难:D我花了2个小时,因为我从未使用过canvas xD,所以我的最终解决方案是在这里-> http://jsfiddle.net/StartStep/g25J6/7/

              var w = this.width;
                  h = this.height,
                  cw = canvas.width,
                  ch = canvas.height,
                  nx = 0,
                  ny = 0,
                  r = h/w;
                      if(h<w) {
                         //horizontal image
                             r = w/h;
                             nh = 400,
                             nw = r*400;
                             nx = -(nw-300)/2;

                      } else {
                         //vertical image
                             nw = 300,
                             nh = r*300;
                             ny = -(nh-400)/2;
                      }

图像居中并通过匹配大小进行裁切。 希望对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM