图片等比缩放到指定区域

经常会遇到将图片等比缩放到某个特定大小的区域内,比如,预览图片、图片全屏显示等等,自己写了一个方法直接返回适应后的图片大小。

function getimagesize(imgSrc, imgW, imgH) {

    // 定义返回的大小
    var imgNewSize = {};
    //获取图片
    // 定义新的宽高
    var neww = 0,newh = 0,mt = 0,ml = 0;
    // 获取原本宽高
    var imgLayerW = imgSrc.width;
    var imgLayerH = imgSrc.height;

    var rateW = imgW / imgLayerW,rateH = imgH / imgLayerH;
    if(rateW < rateH){
        neww = imgLayerW * rateW;
        newh = imgLayerH * rateW
        mt = (imgH - newh) / 2;
    } else{
        neww = imgLayerW * rateH;
        newh = imgLayerH * rateH;
        ml = (imgW - neww) / 2;
    }

    imgNewSize["w"] = neww;
    imgNewSize["h"] = newh;
    imgNewSize["mt"] = mt;
    imgNewSize["ml"] = ml;
    return imgNewSize;
}

  

第一个参数imgSrc,代表要设置等比缩放的图片对象;第二个参数imgW,代表特定区域的宽度;第三个参数imgH,代表特定区域的高度。返回值是一个数组对象,w:新的宽度;h:新的高度;mt:等比缩放后的margin-top值,为了垂直方向居中;ml:等比缩放后margin-left值,为了水平方向居中,然后再将这四个样式值应用到图片上就可以了。这样无论你的图片和指定区域是怎样比例的矩形都能够等比展示出来,不压缩,不拉伸。

原文地址:https://www.cnblogs.com/superior0325/p/8194098.html

时间: 2024-09-30 13:52:34

图片等比缩放到指定区域的相关文章

img只显示图片一部分 或 css设置背景图片只显示图片指定区域

17:14 2016/3/22img只显示图片一部分 或 css设置背景图片只显示图片指定区域 background-position: 100% 56%; 设置背景图片显示图片的哪个坐标区域,图片左上角为0,0或0%,0%,右下角为高度和宽度,或100%,100%. clip:rect(300px 100px 300px 0px); 设置显示图片的某个区域,分别是上右下左的顺序设置 部分代码:<style type="text/css">img {position:abs

CCRenderTexture截取指定区域图片

CCRenderTexture截取指定区域图片 -- 记录截取目标的原始坐标local x, y = self._nodeRender:getPosition()-- 截取区域local size = CCSizeMake(376, 1122)local pRender = CCRenderTexture:create(size.width,size.height,kCCTexture2DPixelFormat_RGBA8888, 0x88F0)pRender:beginWithClear(0.

js为页面的指定区域生成base64图片

需要一个封装好的html2canvas.js /* html2canvas 0.4.1 <http://html2canvas.hertzen.com> Copyright (c) 2013 Niklas von Hertzen Released under MIT License */ (function(window, document, undefined){ "use strict"; var _html2canvas = {}, previousElement,

在图片上画矩形并高亮显示矩形区域、统计矩形区域中像素情况并绘制直方图

<学习OpenCV>中文版第4章第3题 提纲 题目要求 程序代码 结果图片 题目要求: ①允许用户在图片上选择一个矩形区域,当鼠标放开,高亮显示矩形区域 ②在另一个独立窗口中,使用绘图函数绘制一个图表,分别用蓝.绿和红色表示选中区域中各种颜色的像素在指定数值范围内的数量. 程序代码: 1 #include "stdafx.h" 2 #include <cv.h> 3 #include <highgui.h> 4 using namespace std

做了一个图片等比缩放的js

芋头 发布在view:8447 今天改了一下博客的主题,发现博客主题在ie6下变样了,后来发现是因为某篇文章里的某个图片太大了撑开了容器,导致样式错位,前几天公司需求里也曾遇到过要编写一个等比缩放的东西,后来不了了之,今天就一起解决了它吧. 1.等比缩放? 等比缩放就是一张图片按照比例缩放,而不是按照容器大小去缩放,那样会变形而且变得很丑,例如下面的示例: 这是原图片,大小是200*100: , 如果不按比例缩放成100*100: ,很明显变形了. 我现在要的效果是这样的: 在两边多出两块空白,

背景图片等比缩放的写法background-size简写法

1.背景图片或图标也可像img一样给其宽高就能指定其缩放大小了. 比如一个实际宽高36*28的图标,要缩小一半引用进来的写法就是: background:rgba(0, 0, 0, 0) url("../images/[email protected]") no-repeat scroll left center / 18px 14px;      //left center是图标定位,/后面的18px 14px是指定背景图标应用的大小,原图标大小是36px 28px 这样指定大小为1

屏幕指定区域识别

零.相关说明: 首先进行一下相关说明.在“jsxyhelu.cnblogs.com/项目实战派”栏目里面出现的需求.图片和其他资源,都是我在浏览威客网站.论坛等网站的时候通过正规渠道获得的真实需求.个人觉得比较感兴趣,但是由于时间或者工作的冲突自己没有去接这些项目.但是由于这些需求都很有实现价值,所以过了一段时间,仍然拿出来练一练手,并且实现了核心模块.希望能够给浏览者一些启发.如果你认为这些图片和资源放在这里不合适,请及时联系我([email protected]),我会及时处理的.此外,我会

微信小程序导出当前画布指定区域的内容并生成图片保存到本地相册(canvas)

最近在学小程序,在把当前画布指定区域的内容导出并生成图片保存到本地这个知识点上踩坑了. 这里用到的方法是: wx.canvasToTempFilePath(),该方法作用是把当前画布指定区域的内容导出生成指定大小的图片,并返回文件路径.(详情 看文档) 这里先来分析一下这句话:导出当前画布指定区域的内容并生成图片 .这里以画一个矩形并将该矩形保存到本地相册为例. 首先我们要做的是先在画布上画一个矩形,其次是利用 wx.canvasToTempFilePath()方法导出画布指定区域的内容,这里当

jQuery实现的图片等比例缩放效果

jQuery实现的图片等比例缩放效果:如果一个容器中放一个比容器还要大的图,那就可能就造成布局出现问题,就算是不容器大,有时候也看起来不够美观,这时候就要限制图片的尺寸,当然不能变形,否则就难看了,下面就介绍一下如何使用jQuery实现等比例缩放效果.代码如下: <div id="demo"> <img src="a.jpg" width="800" height="300" alt="图片&quo