[AlloyImage](http://alloyteam.github.com/AlloyPhoto/) - 基于HTML5技术的专业图像处理库
===========================
### 功能特性
#### 强大功能
1. 基于多图层操作 -- 一个图层的处理不影响其他图层
2. 与PS对应的17种图层混合模式 -- 便于PS处理教程的无缝迁移
3. 多种基本滤镜处理效果 -- 基本滤镜不断丰富、可扩展
4. 基本的图像调节功能 -- 色相、饱和度、对比度、亮度、曲线等
#### 便捷开发
1. 简单快捷的API -- 链式处理、API简洁易用、传参灵活
2. 多种组合效果封装 -- 一句代码轻松实现一种风格
3. 友好参数支持 -- 中、英文参数双向支持,降低专业词汇记忆门槛
4. 接口一致的单、多线程支持 -- 单、多线程切换无需更改一行代码,多线程保持快捷API特性
5. 可预见的错误友好提醒 -- 对一些可能出现错误的地方提醒,方便开发与调试
#### 丰富扩展
1. 方便的添加功能扩展 -- 轻松添加滤镜插件
2. 为扩展提供数学封装 -- 封装了一些数学模块供扩展调用
### 建议使用场景
1.桌面软件客户端内嵌网页运行方式
>>>打包webkit内核: 用户较大头像上传风格处理、用户相册风格处理(处理时间平均<1s)
2.Win8 Metro应用
>>>用户上传头像,比较小的图片风格处理后上传(Win8下IE10支持多线程)
3.Mobile APP
>>>Andriod平台、IOS平台小图风格web处理的需求,如phoneGap应用, 在线头像上传时的风格处理、mobile web端分享图片时风格处理等
### 如何构建源码?
首先使用git clone复制一份AlloyPhoto的代码到本地:
```sh
git clone git://github.com/AlloyTeam/AlloyPhoto.git
```
然后使用npm安装[modjs](https://github.com/modulejs/modjs):
```sh
npm install -g modjs
```
安装成功后:
```sh
cd AlloyPhoto && mod dist
```
构建成功后会在 `./js/combined`目录下生成`alloyimage.js`文件
### 变更历史
#### AlloyImage 1.2开发版代码 获取
> 在release目录下获取开发版
#### AlloyImage 1.2 开发中
1. 更改代码架构,分离Filter
2. 添加工具方法支持:色系提取
3. 添加下载文件方法
4. 添加 棕褐色 滤镜
5. 添加 色调分离 滤镜
6. 添加 Gamma 调节
7. 更改代码,分离Alteration
8. 添加仿射变换(缩放、平移、旋转)、裁切
9. 增加可选颜色调节
10. 曲线命令支持通道调节
11. 优化IOS下性能,修复变形的bug
##### 新增API 1.2以上
>###$AI 或 AlloyImage
初始化一个AlloyImage对象<br />
增加新的参数适配 AIObj $AI(HTMLImageObj img[, Number width, Number height]);<br />
{img} 图片元素<br />
{width} 缩放的宽度 可选<br />
{height} 缩放的高度 可选<br />
如果width 或height一个为null,则使用等比缩放,如果都没有,使用img宽度
tips: 在IOS下请使用width参数来缩放相册中的图片,IOS下不使用缩放,图片太大可能无法绘制到Canvas上<br />
示例
```javascript
var ps = $AI(img, 600).save('jpg', 0.6);
```
>###save
将合成图片保存成base64格式字符串<br />
base64String save(String filetype [, Number comRatio]);<br /><br />
{filetype} 图片格式类型,支持png,jpg,gif等<br />
{comRatio} 对于jpg格式的图片,图片压缩比率或者图片质量,0 - 1的小数<br /><br />
返回 base64的字符串
示例
```javascript
var string = AlloyImage(img).save('jpg', 0.8);
```
>###saveFile
将合成图片下载到本地<br />
void saveFile(String fileName[, Number comRatio]);<br /><br />
{fileName} 图片文件名,如果不带后缀,默认为png格式<br />
{comRatio} 对于jpg格式的图片,图片压缩比率或者图片质量,0 - 1的小数<br /><br />
返回 空
示例
```javascript
img.onclick = function(){
AlloyImage(this).saveFile('处理后图像.jpg', 0.8);
}
```
>###download
功能与使用同saveFile
>###transform
进行仿射变换<br />
AIObj transform(Array Matrix); <br /><br />
{Matrix} 变换矩阵 数组 [a1, a2, b1, b2, dx, dy]<br />
如水平翻转 [-1, 0, 0, 1, 0, 0]<br />
示例
```javascript
//将图层垂直翻转
AlloyImage(img).transform([1, 0, 0, -1, 0, 0]).show();
```
>###scaleTo
将图层或合成图像缩放到指定宽高<br />
AIObj scaleTo(Number width, Nubmer height);<br /><br />
{width} 宽度<br />
{height} 高度<br />
如果不指定某一参数,则使用等比缩放
<br /><br />
返回 AIObj
示例
```javascript
//将图层缩放放到100px * 100px
AlloyImage(img).scaleTo(100, 100).show();
//将图层等比缩放到高50px
AlloyImage(img).scaleTo(null, 100).show();
```
>###scale
将图层或合成图像缩放指定倍数<br />
AIObj scale(Number xRatio, Nubmer yRatio);<br /><br />
{xRatio} 横向缩放倍数<br />
{yRatio} 纵向缩放倍数<br />
如果不指定某一参数,则使用等比缩放
<br /><br />
返回 AIObj
示例
```javascript
//将图层缩放放2 * 2倍
AlloyImage(img).scale(2, 2).show();
//将图层等比缩放3倍
AlloyImage(img).scale(3).show();
```
>###rotate
将图层或合成图像旋转一定的角度<br />
AIObj rotate(Numbe degree);<br /><br />
{degree} 顺时旋转角度,以度为单位<br />
<br /><br />
返回 AIObj
示例
```javascript
//将图层旋转30度
AlloyImage(img).rotate(30).show();
```
>###clip
将图层或合成图像裁剪<br />
AIObj rotate(Numbe x0, Number y0, Number width, Number height);<br /><br />
{x0} 起始横坐标<br />
{y0} 起始纵坐标<br />
{width} 裁剪图像宽度<br />
{height} 裁剪图像高度<br />
<br /><br />
返回 AIObj
示例
```javascript
//将图层从(30, 30)开始裁剪宽100px高100px的图像,并获取图像base64代码
var imgString = AlloyImage(img).clip(30, 30, 100, 100).save('jpg', 0.8);
```
>###drawRect
画出合成像的直方图<br />
void drawRect(String seletor, String channel);<br /><br />
{seletor} 直方图绘制的wrapper<br />
{channel} 要绘制的通道, 比如 'RG', 'GB', 默认为'RGB'
<br /><br />
返回 空
示例
```javascript
var imgString = AlloyImage(img).drawRect('#p');
```
## 预览、撤销、重做
>###doView
保存view的中间结果,下次使用view将会根据上次doView之前的结果进行处理,与undoView结合,可进行撤销操作<br />
AIObj doView();<br />
返回 AIObj<br />
示例参照undoView方法
>###undoView
撤销上次view的执行结果
AIObj undoView();
返回 AIObj
示例
```javascript
var layer = $AI(img);
layer.view("setHSI", 10, 0, 0).show();
// 再次调节 这次还是基于原图调节
layer.view("setHSI", -10, 0, 0).show();
//调节好了 保存这次结果
layer.doView();
// 基于上次的调节结果进行计算
layer.view("brightness", 10, 0, 0).show();
// 不满意 撤销亮度调节操作
layer.undoView().show();
// 回到最原始的图像
layer.undoView().show();
```
#### AlloyImage 1.1
1. 优化代码,组合效果处理性能提升80%
2. 添加木雕组合效果
#### AlloyImage 1.0
### 目录结构
>--build 构建目录 一些项目的构建工具
>--combined 中间构建合成的项目代码,用于测试和发布
>--demo demo文件
>--doc 目录文档
>--release 已发布的文件版本
>--res 一些测试用的静态资源
>--src 项目JS源码
>> alloyimage.base.js core文件 base文件
>> --module 模块文件
>> --alteration 调节模块
>> --filter 滤镜插件
>--test 测试文件
### 这些产品使用了AlloyImage
[AlloyDesigner](http://alloyteam.github.io/AlloyDesigner/)
[AlloyClip](https://github.com/AlloyTeam/AlloyClip)
[AlloyPhoto](https://github.com/AlloyTeam/AlloyPhoto)
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。
资源推荐
资源详情
资源评论
收起资源包目录
基于HTML5的专业级图像处理开源引擎。An image processing lib based on html5..zip (85个子文件)
资料总结
doc
AI规范.md 267B
src
other
LICENSE.md 1KB
binaryajax.js 7KB
exif.js 23KB
alloyimage.base.js 34KB
module
addLayer.js 12KB
dorsyMath.js 16KB
easy.js 4KB
dorsyWorker.js 4KB
applyMatrix.js 2KB
filter
toThresh.js 699B
dotted.js 2KB
gaussBlur.js 4KB
lapOfGauss.js 738B
sepia.js 978B
toGray.js 684B
sharp.js 1KB
oilPainting.js 1KB
darkCorner.js 2KB
noise.js 969B
posterize.js 1KB
toReverse.js 596B
embossment.js 1KB
corrode.js 1KB
ImageEnhance.js 765B
mosaic.js 2KB
fix.js 2KB
tools.js 6KB
config.js 3KB
alteration
seletiveColor.js 7KB
brightness.js 851B
setHSI.js 2KB
gamma.js 1KB
curve.js 2KB
AUTHORS 13B
combined
alloyimage.js 119KB
LICENSE 1KB
demo
demo3.html 802B
demo4.html 790B
demo2.html 874B
index.html 3KB
demo5.html 1019B
demo1.html 1KB
res
img
2.jpg 45KB
10.jpg 119KB
yuv2.jpg 51KB
1.jpg 50KB
yuv4.jpg 93KB
12.jpg 81KB
5.jpg 5KB
Yuv3.jpg 93KB
8.jpg 8KB
11.jpg 44KB
y.jpg 16KB
3.jpg 31KB
7.jpg 60KB
4.jpg 78KB
release
alloyimage-1.1.js 23KB
alloyimage.1.2b.js 34KB
nsrc
alloyimage.layer.js 11KB
alloyimage.util.js 719B
alloyimage.info.js 434B
alloyimage.config.js 3KB
alloyimage.base.js 23KB
alloyimage.define.js 2KB
alloyimage.process.js 4KB
alloyimage.fix.js 2KB
build
com.cmd 181B
Modfile 466B
compiler.jar 5.59MB
combine.php 956B
test
testnew.html 785B
testDefine.html 481B
testView.html 1KB
testTransform.html 398B
testTools.html 1KB
save.html 568B
denoise.html 458B
testSeletiveColor.html 1KB
test2.html 743B
test.html 114B
testWidth.html 433B
testRect.html 408B
.gitignore 573B
README.md 8KB
共 85 条
- 1
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 仓库管理系统 基于Spring Boot框架实现的仓库管理系统(程序+数据库+报告)
- An Efficient Representation for Irradiance Environment Maps
- grafana的服务器监控模板
- OneForAll子域收集工具
- KUKA机器人MxAutomation功能资料
- PHP免登录购买商城源码/抖音商城系统/主播带货手机商城/支持分站/对接易支付
- 全新完整版H5商城系统源码 亲测 附教程
- 2021年全球疾病负担研究(GBD)生育率估计.zip
- 基于曼宁公式求解复式断面水位-流量关系曲线(MATLAB全代码)
- 前端常用布局模板39套,纯CSS实现布局
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功