首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无比强大的图片裁剪工具库!牛X!

可以通过json数据来获取图片的位置大小。 可以通过json数据来设置图片的位置大小。 可以通过URL来获取图片。...x:裁切区域的左偏移值 y:裁切区域的上偏移值 width:裁切区域的宽度 height:裁切区域的高度 rotate:图像的旋转角度 scaleX:应用于图像横坐标的比例因子,图片左右翻转量 scaleY...scale(scaleX[, scaleY]):如果scaleX 绝对值为1,则图片宽度不变化;如果 scaleX 为负数,则会以x轴为中心轴翻转。同理 scaleY 也是如此。...如果只填了 scaleX 没填 scaleY,则 scaleY 会等于 scaleXscaleX(scaleX):等于 scale(scaleX, 1)。...getImageData():返回图像的位置、大小其他相关数据。 getCanvasData():返回画布(图像包装器)的位置大小数据。

1.8K30

动态海报营销FabricJs方案

Fabric.js可以做很多事情,如下: Canvas上创建、填充图形(包括图片、文字、规则图形复杂路径组成图形)。 给图形填充渐变颜色。 组合图形(包括组合图形、图形文字、图片等)。...,这里设置画布一样大 scaleX: card.width / img.width, scaleY: card.height / img.height, }); // 设置背景...scaleY来设置图片绘制后的大小,这里为原来大小的一半 scaleX: 0.5, scaleY: 0.5 }); // 添加对象后, 如下图 card.add(imgInstance);...,有两个参数可以应用起来,分别是scaleXscaleY参数,通过这两个参数,可以对应地缩放图片大小,方便图片能完整地canvas画布体现出来。...dataURL = card.toDataURL({ format: 'jpeg', // jpeg或png quality: 0.8 // 图片质量,仅jpeg时可用 // 截取指定位置大小

3.4K21
您找到你想要的搜索结果了吗?
是的
没有找到

这是一篇很好的互动式文章,Framer Motion 布局动画

当我们把位置大小的变化结合起来时,我们逆向步骤中进行了两个独立的变换--平移缩放。...换句话说,这个错误的发生是因为测量的距离变换原点之间的差异:getBoundingClientRect()返回元素的左上角,变换原点默认是元素的中心。...有了这个见解,我们也可以通过使用中心之间的距离不是左上角的点来解决这个问题。 纠正子元素的变形 到目前为止,我们已经能够制作一个布局动画,可以无缝过渡到大小位置的变化。...试着移动下面的滑块,注意文字是如何保持相同大小的,不管广场的大小如何。 现在,如何将其与我们的布局动画相结合呢?...在上面的例子,蓝线表示父方的比例,黄线表示子方的比例。请注意,蓝线是一条直线,黄线则有点像曲线。这告诉我们,反比例的时间与父比例的时间是不一样的!

2.6K20

Android实现电影院选座效果

这是一个简单的电影院选座效果,实现该效果大致分为三步: 1.自定义view进行绘制; 2.手势缩放效果的实现; 3.手势触摸被选未被选效果的实现; 先来看第一步,效果的绘制; public class...private int defaultScreenWidth; //标识是否正在缩放 private boolean isScaling; private float scaleX, scaleY...public ArrayList<Point list; /** * 默认的座位图片的宽度,如果使用的自己的座位的图片比这个尺寸大或者小,会缩放到这个大小 */ private float...column <= 0) { return; } drawSeat(canvas); super.onDraw(canvas); } 具体的绘制逻辑实在drawSeat(),方法实现的..., left, top); tempMatrix.postScale(scaleX, scaleY, left, top); if (isHave(i, j)) { //绘制被选

1.7K20

图片中多个二维码选择的实现

features数组的元素是CIQRCodeFeature对象,这个对象包含有对应二维码的位置信息。...根据显示宽度图片实际宽度,计算缩放比例,得到要缩放的 transform。...(scaleX, scaleY); // 图片居中显示,所以(屏幕高度 - 图片高度 * 缩放比例) / 2.0,即是要偏移的大小 CGFloat offsetY = (zScreenHeight...代码如下: 首先定义一个对象,存储二维码信息二维码位置;并且定义一个方法,根据点判断是否二维码范围内,可设置误差大小(超出二维码多大范围也算有效)。...(scaleX, scaleY); // 图片居中显示,所以(屏幕高度 - 图片高度 * 缩放比例) / 2.0,即是要偏移的大小 CGFloat offsetY = (zScreenHeight

39020

CSS背景图像,镜像翻转、缩放、背景偏移与定位、文字溢出处理

-1); -webkit-transform:scaleX(-1); -o-transform:scaleX(-1); transform:scaleX(-1); /*兼容IE*...:scaleY(-1); -o-transform:scaleY(-1); transform:scaleY(-1); /*兼容IE*/ filter:FlipV;}注意: 镜像翻转普通旋转不同...背景图片 相关CSS背景图片background:url(logo.png)no-repeat;背景图片大小缩放: 宽 高background-size:100%100%;绝对定位position:absolute...object-fit: cover;cursor: pointer;background-attachment用来设置背景图片是否随页面一起滚动可选值:不随窗口滚动的图片,我们一般都是设置给body,不设置给其他元素...background-attachment: fixed;scroll,默认值,背景图片随着窗口滚动fixed,背景图片会固定在某一位置,不随页面滚动背景图像偏移, 如下: 水平(宽度.左右平移) 垂直

16.8K10

【easeljs】显示对象基础 DisplayObject 类

, scaleY, etc), caching, and mouse handlers....(这一点是官方翻译过来的,应该是指注意3提到的问题吧) 注意2:通常,最终的缓存canvas的面积是widthscale乘以heightscale,然而一些滤镜(例如 BlurFilter)会给原对象添加宽度...(可以看到使用过BlurFilter的矩形,边缘已经不是一条线了,而是扩展出一些像素出去了的),所以缓存时的宽度注意加上这些扩展出来的。...怎么获取BlurFilter扩展出的像素 注意3:注意:widthheight两个参数,对于已经用scale改变过形状大小的对象来说,应该填它原来的宽度不是改变大小后的宽度,比如一个矩形原始宽度是...100px,设置了scaleX=0.5,填这个值时,应该填100,不是50!

71730

【动画进阶】有意思的网格下落渐次加载效果

本文,就将具体去剖析这个动画,如果使用纯 CSS,应该如何实现。 还原布局结构 首先,我们需要大致还原布局结构,这个并非整个动画的核心。...当然,还原这个布局也非常简单,这里我们借助 flex 布局快速实现,几个关键点: 每个 flex-item 宽度不固定:这一点可以使用 SASS 函数进行模拟,随机生成不同宽度的 flex-item 每个...动画开始时,元素将消失,然后从上方,一个缩小状态下,有一个小幅度向上运动 接着元素向下运动到目标位置(终止状态) 元素从缩小状态,放大为正常状态 并且,动画结束后,需要维持最后一帧,因此需要使用(...scaleY(.3); } 75% { transform: translateY(0) scaleX(.6) scaleY(.3); } 100% {...scaleY(.3); } 75% { transform: translateY(0) scaleX(.6) scaleY(.3); } 100% {

22410

android 优化之Bitmap优化

Bitmap优化 一个进程的内存可以由2个部分组成:nativedalvik dalvik就是我们平常说的java堆,我们创建的对象是在这里面分配的,bitmap是直接在native上分配的。...Bitmap的生成是通过malloc进行内存分配的,占用的是C的内存,这个也就说明了,上述的4MBitmap无法生成的原因, 因为13M被Java用过后,剩下C能用的只有3M了。...Android应用里,最耗费内存的就是图片资源。 Android系统,读取位图Bitmap时,分给虚拟机的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。...,可以利用上面的代码,先获取图片真实的宽度高度,然后判断是否需要跑缩小。...if(scaleX>scaleY){//按照水平方向的比例缩放 opts.inSampleSize = scaleX;

1.3K70

WPF 使用 ManipulationProcessor2D 纯数学计算方式提供多点漫游元素功能

以上的触摸设备用的是 StylusDevice 概念,相当于一个手指就是一个触摸设备,不是说有多个触摸屏幕。...而是否能做到平滑,我的推荐是加上一层过滤层,因为触摸点的上报具体的触摸框相关,上报的密度将会影响上面逻辑 为什么我这里采用了 Stylus 不是 Touch 事件?... WPF Touch 是触摸, Stylus 是触笔。...ScaleTransform.ScaleY *= e.Delta.ScaleY; } 加上了旋转缩放的中心点,采用缩放因子代替大小变化量。...本质上 ScaleX ScaleY 是由 ExpansionX ExpansionY 推出的,但在 WPF 缩放里面,采用的是缩放比 以下是全部的代码 public partial class

76420

分享10个超实用的高级 CSS 技巧

HTML 元素)动态调整元素的宽度高度。...使用它,我们可以设置元素的内容应如何与其父元素背景混合。本例是一个 img 元素。 在这里,你可以看到我使用了两张图像:一张是彩色的,另一张是黑色的,并且都有白色背景。...img { width: 250px; box-shadow: 15px 15px 15px #555; } 但是,如果我们使用带有 drop-shadow() CSS 函数的过滤器 CSS 属性不是...box-shadow,则可以仅向 PNG 的实际图像部分添加阴影,不包括透明背景。...要水平翻转图像,只需使用scaleX(-1)CSS属性并使用scaleY(-1)垂直翻转图像。 要同时水平和垂直翻转图像,请使用scale(-1) 在下面的示例,你可以看到同一张图像重复了四次。

12010

可视化大屏的几种屏幕适配方案,总有一种是你需要的

假设我们正在开发一个可视化拖拽的搭建平台,可以拖拽生成工作台或可视化大屏,或者直接就是开发一个大屏,首先必须要考虑的一个问题就是页面如何适应屏幕,因为我们搭建或开发时一般都会基于一个固定的宽高,但是实际的屏幕可能大小不一...这个是最简单的方案了,相当于不适配屏幕,画布配置了多大实际就是多大,不随屏幕的变化变化,所以各个组件的宽高也是配置后不会改变,一般用于尺寸固定且后期不会改变的可视化大屏。...; const scaleY = newCanvasHeight / canvasHeight.value; canvasStyle.transform = `scale(${scaleX}, ${scaleY...scaleX}, ${scaleY}) translate(${translateX}px, ${translateY}px)`; 窗口的宽高减去画布适应后的新宽高,即剩余的空间,再除以2进行居中显示,...200px; height: 200px; background: red; position: absolute; left: 50px; top: 50px;"> 我们想要动态根据这个div大小位置复制一个

3K41

解锁前端难题:亲手实现一个图片标注工具

Canvas 中使用 scale 函数时,重要的是要理解它实际上是缩放绘图坐标系统,不是直接缩放绘制的图形。...这意味着,如果你将缩放比例设置为 2,那么在这个缩放的坐标系统,绘制一个宽度为 50 像素的矩形,实际上会在画布上产生一个宽度为 100 像素的矩形。...因为缩放的坐标系统,每个单位长度都变成了原来的两倍。 因此,当我们谈论 scale 函数时,重点是要记住它是缩放整个绘图坐标系统,不是单独的图形。...现在我们已经实现了图片的缩放功能,效果如下所示: 鼠标缩放 细心的你可能发现上面的缩放效果是基于左上角的,基于鼠标点缩放意味着图片的缩放中心是用户鼠标所在的位置,不是图片的左上角或其他固定点。...(-scaleX, -scaleY); ctx1.drawImage(img, 0, 0, width, height); ctx1.restore(); } scaleX scaleY

41810

CSS进阶知识

回流:当页面的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变需要重新构建。这就称为回流(也有人会把回流叫做是重布局或者重排)。每个页面至少需要一次回流,就是页面第一次加载的时候。...重绘:当页面的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,不会影响布局的时候,比如background-color。则称为重绘。 回流必将引起重绘,重绘不一定会引起回流。...例如 margin 外间距,各大浏览器最常发生不一致的状况,写成了一个 Reset CSS 档案,将 margin 全部统一归 0 ,其他部份,文字大小行高也全部统成一样的大小 … 等,只要挂上这一段...a: 旋转角度 transform: scaleX(rate); //沿着 x 轴缩放 (胖瘦) transform: scaleY(rate); //沿着 y 轴缩放...em rem em = 父节点大小(其实就是本身的基准大小,主要是本身未设置时默认继承父元素的大小。)

20410

CocosCreator基础教程—聊聊scale与size属性(2)

CocosCreator引擎编辑,节点的scalesize属性都可以改变节点内容的大小,如下图中可爱的椰子头,原图尺寸为512*512,UI编辑时发现太大了,需要·128*128的大小更适合。...可使用scaleXscaleY控制节点X\Y轴的缩放。 size:节点内容尺寸,以像素为单位,修改size不影响子节点。size是一个对象,使用width\height控制宽\高像素尺寸。...由此也可以看出,使用scale修改节点外观大小不是一个好主意;简单的使用getContentSize()获取节点大小不是一个安全之举,你不能保证UI编辑的同学不会使用scale属性,所以使用node.getBoundingBox...图片尺寸变化对精灵节点的影响 游戏开发,时常会遇到图片资源更改的情况,比如:有一系列的角色图片,切图为512*512的尺寸,但在游戏中只需要128*128或其它尺寸展示。...这时做UI编辑的同学可能会被郁闷到,UI编辑器,他使用的是scale调整的精灵大小,那图片更新还得再全部重新调整,因为它会以图片原始尺寸的变化按比列变化。

6.7K21
领券