找回密码
 立即注册

QQ登录

只需一步,快速开始

inroad

中级会员

70

主题

262

帖子

784

积分

中级会员

积分
784
inroad
中级会员   /  发表于:2022-8-19 16:52  /   查看:1703  /  回复:7
image.png255203856.png
现在图片上传后放大缩小会变形,请问是否有锁定图片纵横比的功能?

7 个回复

倒序浏览
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-8-19 18:18:21
沙发
您好,
您的需求是希望拖动图片四个角时,图片等比缩放/扩大吗?
目前计划V15.2支持此功能,当前版本V15.1以及之前版本(包括V14)不支持。
回复 使用道具 举报
sssssss
金牌服务用户   /  发表于:2022-9-8 10:59:02
板凳
Lynn.Dou 发表于 2022-8-19 18:18
您好,
您的需求是希望拖动图片四个角时,图片等比缩放/扩大吗?
目前计划V15.2支持此功能,当前版本V15. ...

请问15.2.1有此功能吗?
回复 使用道具 举报
Lynn.Dou讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-9-8 14:17:13
地板
经功能评估,该功能已推迟V16版本,目前V15.2.1暂不支持。
回复 使用道具 举报
沉沉悬赏达人认证
金牌服务用户   /  发表于:2022-9-8 14:30:30
5#
sssssss 发表于 2022-9-8 10:59
请问15.2.1有此功能吗?

可以提前获取宽高纵横比,然后图片宽高发生变化时,触发PictureChanged事件,此时获取propertyName属性,判断是否为'width'或'height' 。如果是的话,为其按比例重设宽高
  1.        sheet.suspendPaint();
  2.             var picWidth = 180, picHeight = 200;
  3.             var ratio = picWidth /picHeight;
  4.             sheet.pictures.add("f2", "https://demo.grapecity.com.cn/spreadjs/SpreadJSTutorial/spread/source/images/splogo.png", 62, 140, picWidth, picHeight);
  5.             sheet.resumePaint();


  6.             sheet.bind(GC.Spread.Sheets.Events.PictureChanged , function (event, args) {
  7.                 let pictureObject = args.picture,propertyName = args.propertyName;
  8.                 if(propertyName=='width' || propertyName=='height') {
  9.                     let width = pictureObject.width(), height = pictureObject.height()
  10.                     if (width / height != ratio) {
  11.                         pictureObject.height(width*ratio)
  12.                     }
  13.                 }
  14.             });
复制代码
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-9-8 18:16:40
6#
可以参考楼上回复。
回复 使用道具 举报
sssssss
金牌服务用户   /  发表于:2022-9-15 14:25:23
7#
沉沉 发表于 2022-9-8 14:30
可以提前获取宽高纵横比,然后图片宽高发生变化时,触发PictureChanged事件,此时获取propertyName属性, ...

谢谢,但是此时如果拖拽上下左右锚点也会进行等比缩放对吗?因为我这边想实现的是,拖拽四个角进行等比缩放,拖拽上下左右锚点进行非等比变化。
回复 使用道具 举报
Ellia.DuanSpreadJS 开发认证
超级版主   /  发表于:2022-9-15 15:17:49
8#
这边可以提供个思路,具体还是得看您,是否使用这种方式:
拖拽右下角 ,拖拽完成后,会触发两次PictureChanged事件,这时候可以判定两个触发时间,如果相隔时间很短,这时候可以按照我之前提供的锁定纵横比方法。
image.png375509642.png
如果拖拽上线左右锚点,只会触发一次事件 ,此时可以获取修改属性 只是width或者height,这时候不做任何处理
image.png143840941.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部