图片裁剪自适应

最近真是冷,才恍然早已是冬天,冻的手都僵了。

最近项目中图片需要统一固定宽高,但后台上传的各个图片比例并不是都一样的,直接把图片设置宽高会导致图片变形。

所以需要对图片进行处理,图片直接放在容器中默认的宽度低于容器的宽度,需要把图片高度设成容器高度,然后图片水平居中显示,反之垂直居中。

话不多说直接上代码,比较简单也就不详细讲解了,写成一个通用函数了可以拿过去直接使用。

function resizeImg(imgClassName,imgWidth,imgHeight){
        var imgs = document.getElementsByClassName(imgClassName);
        var i=0,img,parentDiv,newWidth,minusPx;
        for(;i < imgs.length;i++){
            img = imgs[i];
            img.style.position = ‘absolute‘;
            parentDiv = img.parentNode;
            parentDiv.style.width = imgWidth + ‘px‘;
            parentDiv.style.height = imgHeight + ‘px‘;
            parentDiv.style.position = ‘relative‘;
            parentDiv.style.overflow = ‘hidden‘;
            if(img.height / img.width < imgHeight/imgWidth){
                newWidth = imgHeight/img.height*img.width;
                minusPx = (newWidth - imgWidth)/2;
                img.style.width = newWidth + ‘px‘;
                img.style.height = imgHeight + ‘px‘;
                img.style.clip = ‘rect(0,‘ + (newWidth - minusPx) + ‘px,‘ + imgHeight + ‘px,‘+minusPx+‘px)‘;
                img.style.marginLeft = ‘-‘+ minusPx + ‘px‘;
            }else if(img.height / img.width > imgHeight/imgWidth){
                minusPx = (img.height - imgHeight)/2;
                img.style.clip = ‘rect(‘+ minusPx +‘px,‘ + imgWidth + ‘px,‘ + (img.height - minusPx) + ‘px,0)‘;
                img.style.marginTop = ‘-‘+ minusPx + ‘px‘;
            }
        }
    }
};

如果你觉得这篇随笔对你有帮助可以支付宝(左)或微信(右)打赏小毅喝杯咖啡 ^_^


 
时间: 2024-08-09 23:52:01

图片裁剪自适应的相关文章

php进行图片裁剪及生成缩略图程序源代码

我们经常会遇到对图像进行裁剪动作,下面这段代码就是裁剪的源码 处理方法是: 1.当原图的宽或高任一比规定的尺寸小,只进行等比缩略处理, 2.当原图的宽与高都比规定尺寸大,先进行等比缩略处理,然后算出居中位置进行裁剪 /* * $o_photo 原图路径 * $d_photo 处理后图片路径 * $width 定义宽 * $height 定义高 * 调用方法 cutphoto("test.jpg","temp.jpg",256,146); */ function cu

图片裁剪

图片裁剪代码: -(UIImage*)getSubImage:(UIImage*)image rect:(CGRect)rect { CGRect newrect = CGRectMake(0, 0, rect.size.width*2, rect.size.height*2); CGImageRef subImageRef = CGImageCreateWithImageInRect(image.CGImage, newrect); UIGraphicsBeginImageContext(re

iOS边练边学--(Quartz2D)图片裁剪,带圆环的裁剪

一.图片裁剪,示意图 二.带圆环的图片裁剪示意图

Java实现图片裁剪预览功能

Java实现图片裁剪预览功能 在项目中,我们需要做些类似头像上传,图片裁剪的功能,ok看下面文章! 需要插件:jQuery Jcrop 后端代码: package org.csg.upload; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import 

cropper.js图片裁剪

最近做电子名片的项目,可是个人照片展示上出现了 用户上传的图片尺寸严重失调,所以要求进行图片裁剪,再此我对图片裁剪进行调研 还不太成熟 以后再改 这个实现的原理是 前台获取到 坐标 图片的尺寸 原图文件 传给后台进行裁剪 这个是我在网上找的一个插件 cropper功能很强大 这里是官方文档 首先使用cropper必须引入对应得css和js,还有jquery <script src="jquery.js"></script> <link href="

简单的图片裁剪服务器

自己写的一个简单的图片服务器,可以读取FastDFS上的图片,根据参数进行图片裁剪输出到前台 改项目可以上传图片到FastDFS,读取FastDFS上存储的图片,前面可以增加Varnish图片缓存服务器缓解图片裁剪压力 使用一个简单的Servlet实现 package com.imgcut.servlet; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletException;

原生 JavaScript 图片裁剪效果

图片裁剪程序效果如下,可鼠标操作. 拖动左边小方框时在右侧实时显示对应的裁剪图片,同时左侧的拖动框里图片完全显示,拖动框外部图片模糊显示.8个控制点可以对显示区域大小进行控制. HTML 和 CSS 部分 左侧的裁剪操作区域可以分为三层. 最底层的图片半透明效果:中间层的图片只显示制定区域,其他部分隐藏:最上层为拖拽控制层.最低层和中间层使用同一张图片,利用CSS属性clip控制中间层只显示一部分. 三个层都使用 absolute 绝对定位.下面是 HTML 和 CSS 代码. 1 <div i

手机网页宽度 , 图片宽度 自适应

网页宽度 页面box不要写宽度或 width:100% 之类的 去掉 头部加上下面代码: <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes" /> 图片宽度 <script type="text/javascript"> f

文件列表遍历和多通道图片裁剪

文件遍历和多通道图片裁剪 % 加载文件路径列表,文件个数为sz(1) filelist = textread('R:\Users\HaoGe\Desktop\fs\all_figures.txt','%s','delimiter','\n'); sz=size(filelist); %读取样本 for i=1:sz(1) name= char(filelist(i,1)); image=imread(name); % ms = size(image) % m = ms(1) % n = ms(2