Eternity_y 2023-11-15 11:05 采纳率: 0%
浏览 3

获取上传图片的尺寸!

前提条件:在特点大小的框中,图片的宽和高100%在框中展示
问题:获取上传图片的尺寸,并让多个框在图片上展示
期望结果:

img

解决方法:

<div
            ref="box"
            :style="{
              top: `${item.boxTop}`,
              left: `${item.boxLeft}`,
              width: `${item.boxWidth}`,
              height: `${item.boxHeight}`,
            }"
            class="select-img"
            v-for="(item, index) in boxs"
            :key="index"
          ></div>

this.boxPoint([[1014,124,153,202],[900,600,153,202],[600,124,153,202]]);
boxPoint(point) {
      const img = new Image();
      img.onload = () => {
        const { width, height } = img;
        this.boxs = point.map((item) => {
          return {
            boxTop: `${(item[1] / height) * 100}%`,
            boxLeft: `${(item[0] / width) * 100}%`,
            boxHeight: `${(item[3] / height) * 100}%`,
            boxWidth: `${(item[2] / width) * 100}%`,
          };
        });
      };
      img.src = this.imgUrl;
    },
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-15 12:49
    关注

    【以下回答由 GPT 生成】

    我可以使用Vue.js的特性来实现这个功能。具体步骤如下:
    
    1. 使用Vue.js的v-on指令来监听图片加载完成事件,获取图片的宽度和高度。
    2. 使用Vue.js的计算属性来动态计算框的位置和大小,使得图片能够在特定大小的框中达到100%的展示效果。
    
    具体代码如下所示:
    
    ```javascript
    <template>
      <div>
        <img :src="imageUrl" @load="getImageSize">
        <div :style="boxStyle"></div>
      </div>
    </template>
    
    <script>
    export default {
      data() {
        return {
          imageUrl: 'path_to_your_image.jpg',
          imgWidth: 0,
          imgHeight: 0,
        };
      },
      computed: {
        boxStyle() {
          const left = (100 - this.imgWidth) / 2;
          const top = (100 - this.imgHeight) / 2;
          return {
            width: `${this.imgWidth}%`,
            height: `${this.imgHeight}%`,
            position: 'absolute',
            top: `${top}%`,
            left: `${left}%`,
          };
        },
      },
      methods: {
        getImageSize(event) {
          this.imgWidth = event.target.width;
          this.imgHeight = event.target.height;
        },
      },
    };
    </script>
    

    在上面的代码中,我们通过v-on指令监听图片加载完成事件,然后在对应的方法中获取图片的宽度和高度。接着利用计算属性来动态计算框的位置和大小,使得图片能够在特定大小的框中达到100%的展示效果。 ```



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 11月15日

悬赏问题

  • ¥15 地图软件开发技术答疑(api, 地点获取,外观样式)
  • ¥20 物理远程控制麦克风使用问题
  • ¥15 打印预览会泄漏纸钱包密码吗
  • ¥15 在hololens1上运行unity项目只有空窗口
  • ¥25 TABLEAU PREP无法打开
  • ¥15 百度帐号问题/centos
  • ¥15 关于#c语言#的问题:求完整代码条件好说
  • ¥100 HALCON DELPHI
  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)