首页 > 其他分享 >自适应显示图片高度和宽度

自适应显示图片高度和宽度

时间:2024-04-19 10:37:17浏览次数:18  
标签:const containerWidth height 适应 width 宽度 fitHeight 图片 size



file.previewPath就是图片路径



this.getImageSizeFromBlobUrl(file.previewPath) .then(size => { console.log('原图大小:', size.width, 'x', size.height); const screenWidth = window.innerWidth - 80; const screenHeight = window.innerHeight - 80; // const { width, height } = this.originalSize = this.calculateFitSize(size.width, size.height, screenWidth, screenHeight); console.log('换算大小:', this.originalSize); this.cropperModel = true; }) .catch(error => { console.error('获取原图大小失败:', error); });

   // 获取原图大小     getImageSizeFromBlobUrl(blobUrl) {       return new Promise((resolve, reject) => {         const img = new Image();
        img.onload = function() {           // 在图像加载完成后获取其自然宽度和高度           const { naturalWidth } = this;           const { naturalHeight } = this;           resolve({ width: naturalWidth, height: naturalHeight });         };
        img.onerror = function() {           reject(new Error('Failed to load image'));         };
        // 设置 Image 对象的 src 属性为 Blob URL         img.src = blobUrl;       });     },

  

   
// 自适应显示图片高度和宽度
    calculateFitSize(imageWidth, imageHeight, containerWidth, containerHeight) {
      const imageAspectRatio = imageWidth / imageHeight;
      const containerAspectRatio = containerWidth / containerHeight;
      let fitWidth, fitHeight;
      if (imageAspectRatio > containerAspectRatio) {
        // 图片的宽高比例大于容器的宽高比例,按照容器的宽度进行缩放
        fitWidth = containerWidth;
        fitHeight = containerWidth / imageAspectRatio;
      } else {
        // 图片的宽高比例小于等于容器的宽高比例,按照容器的高度进行缩放
        fitHeight = containerHeight;
        fitWidth = containerHeight * imageAspectRatio;
      }

      return { width: Math.round(fitWidth), height: Math.round(fitHeight) };
    }

  

标签:const,containerWidth,height,适应,width,宽度,fitHeight,图片,size
From: https://www.cnblogs.com/ht955/p/18145237

相关文章

  • Springboot vue pdf/图片 加水印下载
    1:引入包<dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.27</version></dependency>2前端代码:downloadFile1(fileUrl,filename){if(filename==null||fi......
  • wangeditor5富文本中的图片点击放大
    放大图片组件img-preview.vue<template> <divclass="preview"@click="onClick"@keydown="onKeydown"> <divclass="preview-img"> <img:src="src"alt/> </div> </div>&l......
  • h5 自适应页面背景图无法自动适应的问题
     有时候制作好自适应页面,上面用的是背景图,发现在手机中,宽度会出现不能100%显示的问题,虽然样式中我们使用了width为100%。加入以下语句<html><head><metaname="viewport"content="width=1200px">当只设置width属性值,而不指定initial-scale属性值时,大多数浏览器......
  • browserless 对于延迟加载图片的处理
    日常中大家为了提高web的性能基于可见区的图片加载基本常见,但是对于基于puppeteer的快照以及pdf生成就不太方便了,以下是一个解决方法,核心是过去内容的高度,基于代码进行滚动,模拟人的操作实现资源的加载参考实现constexpress=require("express");constpuppeteer=r......
  • GridControl列自动匹配宽度(转)
    //自动调整所有字段宽度this.gridView1.BestFitColumns();//调整某列字段宽度this.gridView1.Columns[n].BestFit(); 大多是网上零散找到的,小部分是自己使用的时候自己遇到的。 XtraGrid的关键类就是:GridControl和GridView。GridControl本身不显示数据,数据都是显示在Grid......
  • HarmonyOS NEXT应用开发之图片缩放效果实现
    介绍图片预览在应用开发中是一种常见场景,在诸如QQ、微信、微博等应用中均被广泛使用。本模块基于Image组件实现了简单的图片预览功能。使用说明:双指捏合缩放图片大小双击图片进行图片的大小切换图片在放大模式下,滑动图片查看图片的对应位置效果图预览实现思路image组......
  • 前端【小程序】03-小程序基础篇【组件】【导航】【图片】【轮播图】【表单】【区域滚
    navigator文档:https://developers.weixin.qq.com/miniprogram/dev/component/navigator.htmlurl:页面路径•支持相对和绝对路径•路径为空时会报错hover-class:点击态的样式,默认按下时会有一个样式•none禁用点击效果open-type:跳转方......
  • Topaz Photo AI 3.0.0 (macOS Universal) - AI 图片修复工具
    TopazPhotoAI3.0.0(macOSUniversal)-AI图片修复工具MaximizeImageQualitywithAI请访问原文链接:TopazPhotoAI3.0.0(macOSUniversal)-AI图片修复工具,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org无耻抄袭者YuTao,请立遁!!!TopazPhotoAI3发......
  • element的表格页面宽度变化问题 (防抖函数)
      //表格问题(防抖函数) constdebounce=(fn,delay)=>{ lettimer=null; returnfunction(){ letcontext=this; letargs=arguments; clearTimeout(timer); timer=setTimeout(function(){ fn.apply(context,args); },delay); } } const_R......
  • 图片压缩demo
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>压缩demo</title></......