# Image-Scale
图像的缩放
功能包括:
- 图像的缩放、压缩
- 一些常用的缩放算法(双立方,双线性,近邻)
## 示例
[https://dailc.github.io/image-process/examples/scale.html](https://dailc.github.io/image-process/examples/scale.html)
[https://dailc.github.io/image-process/examples/scale_compress.html](https://dailc.github.io/image-process/examples/scale_compress.html)
![](../../screenshot/qrcode_scale1.png)
## 效果
![](../../screenshot/imagescale1.png)
## 使用
引入
```js
dist/image-scale.js
```
全局变量
```js
ImageScale
```
调用方法
```js
ImageScale.method()
```
## API
### scaleImageData
对`ImageData`类型的数据进行缩放,将数据放入新的`ImageData`中
```js
ImageScale.scaleImageData(imageData, newImageData, {
// 0: nearestNeighbor
// 1: bilinearInterpolation
// 2: bicubicInterpolation
// 3: bicubicInterpolation2
processType: 0,
});
```
__参数说明__
| 参数 | 参数类型 | 说明 |
| :------------- |:-------------:|:-------------|
| imageData | ImageData | 源图像数据 |
| newImageData | ImageData | 新的图像数据-最终结果 |
| args.processType | Number | 处理算法类别,默认为`1`,分别代表三种经典缩放算法 |
### scaleImage
对`Image`类型的对象进行缩放,返回一个`base64`字符串
```js
var base64 = ImageScale.scaleImage(image, {
width: 80,
height: 80,
mime: 'image/png',
// 0: nearestNeighbor
// 1: bilinearInterpolation
// 2: bicubicInterpolation
// 3: bicubicInterpolation2
processType: 0,
});
```
__参数说明__
| 参数 | 参数类型 | 说明 |
| :------------- |:-------------:|:-------------|
| image | Image | 源图像 |
| args.processType | Number | 处理算法类别,默认为`1`,分别代表三种经典缩放算法 |
| args.mime | String | `mime`类型,默认为`image/png` |
| args.width | Number | 结果图像的宽 |
| args.height | Number | 结果图像的高 |
__参数说明__
| 参数 | 参数类型 | 说明 |
| :------------- |:-------------:|:-------------|
| base64 | String | 缩放后图像的`base64`字符串 |
### compressImage
compressImage,返回一个`base64`字符串
与scale的区别是这用的是canvas自动缩放,并且有很多参数可控
```js
var base64 = ImageScale.compressImage(image, {
// 压缩质量
quality: 0.92,
mime: 'image/jpeg',
// 压缩时的放大系数,默认为1,如果增大,代表图像的尺寸会变大(最大不会超过原图)
compressScaleRatio: 1,
// ios的iPhone下主动放大一定系数以解决分辨率过小的模糊问题
iphoneFixedRatio: 2,
// 是否采用原图像素(不会改变大小)
isUseOriginSize: false,
// 增加最大宽度,增加后最大不会超过这个宽度
maxWidth: 0,
// 使用强制的宽度,如果使用,其它宽高比系数都会失效,默认整图使用这个宽度
forceWidth: 0,
// 同上,但是一般不建议设置,因为很可能会改变宽高比导致拉升,特殊场景下使用
forceHeight: 0,
});
```
__参数说明__
| 参数 | 参数类型 | 默认值 |说明 |
| :------------- |:-------------:|:-------------:|:-------------|
| quality | Number | 0.92 | 图像压缩质量,注意,为`1`的时候可能比原图还大 |
| mime | String | 'image/jpeg' | 生成图像时的`MIME`类型 |
| compressScaleRatio | Number | 1 | 裁剪压缩时的缩放系数,最终尺寸为:`屏幕像素*像素比(手机一般为2)*compressScaleRatio` |
| iphoneFixedRatio | Number | 2 | 在`iphone`情况下再放大一个系数,以解决可能的模糊问题,最终尺寸为:`已计算的最终尺寸*iphoneFixedRatio` |
| isUseOriginSize | Boolean | false | 是否采用原图像素,__优先级高于上述所有__,如果为`true`,最终尺寸为:`原图大小` |
| maxWidth | Number | 0 | 最大宽度,__优先级高于上述所有__,大于这个宽度的图片会强行缩放成这个宽,小于的按照上面的规则进行缩放,为`0`时表示不设置 |
| forceWidth | Number | 0 | 强制设置宽度,__优先级高于上述所有__,最终宽度为:`forceWidth`,为`0`时表示不设置 |
| forceHeight | Number | 0 | 同上,但是一般不建议设置,因为很可能会改变宽高比导致拉升,特殊场景下使用 |
梦回阑珊
- 粉丝: 5503
- 资源: 1707
最新资源
- 基于python+opencv的手势识别系统,可控制灯的亮度,智能家居,智能小车 基于python+opencv的手势识别系统软件 内含svm模型,和肤色识别,锐化处理 基于 win10+Pyt
- 天正的图纸,还有很多工具现在都要交米,这个可以免费CAD转PDF格式
- 旋转自适应对象检测方法:基于成对霍夫模型的新颖方法研究与评估
- 基于springboot的邢台市桥东区社区停车信息管理系统源码(java毕业设计完整源码).zip
- 基于Hough变换和轮廓匹配的红外视频瞳孔精确检测算法研究
- 基于正则化极限学习机(RELM)的数据回归预测 matlab代码
- 基于springboot的酒店管理系统的设计与实现源码(java毕业设计完整源码+LW).zip
- 基于springboot的酷听音乐源码(java毕业设计完整源码).zip
- SQL数据库一键配置,创建定时作业
- 在线车辆租赁信息-JAVA-基于springBoot的在线车辆租赁信息管理系统的设计与实现
- 西门子S7-1500PLC大型程序,各种FB块PTO控制20多个轴,5台S7-1200PLC智能IO通讯,ModbusRTU通讯轮询,完整威纶通触摸屏程序,是学习西门子PLC通信、伺服好帮手 程序结构
- 图像融合-评估指标-python
- 基于springboot的金雁在线考试系统源码(java毕业设计完整源码).zip
- NSGA-II多目标优化算法,通过matlab实现
- 基于springboot的银行信用卡额度管理系统的设计与实现源码(java毕业设计完整源码).zip
- 企业员工管理-JAVA-基于Spring Boot的企业员工管理设计与实现
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈