分类
易语言模块源码

五种图片灰度处理算法

.版本 2 .支持库 BmpOperate .子程序 灰度处理_移位算法, 字节集, , 移位算法 .参数 图片, 字节集 .局部变量 位图, 位图 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 RGB, 字节集 .局部变量 颜色值, 整数型 位图.载入数据 (图片) .计次循环首 (位图.取高度 (), y) .计次循环首 (位图.取宽度 (), x) RGB = 到字节集 (位图.取某点颜色 (x - 1, y - 1)) 颜色值 = 右移 (RGB [1] × 28 + RGB [2] × 151 + RGB [3] × 77, 8) 位图.置某点颜色 (x - 1, y - 1, 取颜色值 (颜色值, 颜色值, 颜色值)) .计次循环尾 () .计次循环尾 () 返回 (位图.取位图数据 ()) .子程序 灰度处理_整数算法, 字节集, , 整数算法 .参数 图片, 字节集 .局部变量 位图, 位图 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 RGB, 字节集 .局部变量 颜色值, 整数型 位图.载入数据 (图片) .计次循环首 (位图.取高度 (), y) .计次循环首 (位图.取宽度 (), x) RGB = 到字节集 (位图.取某点颜色 (x - 1, y - 1)) 颜色值 = (RGB [1] × 30 + RGB [2] × 59 + RGB [3] × 11) ÷ 100 位图.置某点颜色 (x - 1, y - 1, 取颜色值 (颜色值, 颜色值, 颜色值)) .计次循环尾 () .计次循环尾 () 返回 (位图.取位图数据 ()) .子程序 灰度处理_浮点算法, 字节集, , 浮点算法 .参数 图片, 字节集 .局部变量 位图, 位图 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 RGB, 字节集 .局部变量 颜色值, 整数型 位图.载入数据 (图片) .计次循环首 (位图.取高度 (), y) .计次循环首 (位图.取宽度 (), x) RGB = 到字节集 (位图.取某点颜色 (x - 1, y - 1)) 颜色值 = RGB [1] × 0.3 + RGB [2] × 0.59 + RGB [3] × 0.11 位图.置某点颜色 (x - 1, y - 1, 取颜色值 (颜色值, 颜色值, 颜色值)) .计次循环尾 () .计次循环尾 () 返回 (位图.取位图数据 ()) .子程序 灰度处理_仅取绿色, 字节集, , 仅取绿色 .参数 图片, 字节集 .局部变量 位图, 位图 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 RGB, 字节集 .局部变量 颜色值, 整数型 位图.载入数据 (图片) .计次循环首 (位图.取高度 (), y) .计次循环首 (位图.取宽度 (), x) RGB = 到字节集 (位图.取某点颜色 (x - 1, y - 1)) 颜色值 = RGB [2] 位图.置某点颜色 (x - 1, y - 1, 取颜色值 (颜色值, 颜色值, 颜色值)) .计次循环尾 () .计次循环尾 () 返回 (位图.取位图数据 ()) .子程序 灰度处理_平均值法, 字节集, , 平均值法 .参数 图片, 字节集 .局部变量 位图, 位图 .局部变量 x, 整数型 .局部变量 y, 整数型 .局部变量 RGB, 字节集 .局部变量 颜色值, 整数型 位图.载入数据 (图片) .计次循环首 (位图.取高度 (), y) .计次循环首 (位图.取宽度 (), x) RGB = 到字节集 (位图.取某点颜色 (x - 1, y - 1)) 颜色值 = (RGB [1] + RGB [2] + RGB [3]) ÷ 3 位图.置某点颜色 (x - 1, y - 1, 取颜色值 (颜色值, 颜色值, 颜色值)) .计次循环尾 () .计次循环尾 () 返回 (位图.取位图数据 ())
分类
易语言模块

win10皮肤模块修改版

win10皮肤模块修改版

win10皮肤模块修改版.png    

分类
易语言模块源码

易语言核心支持库编写高效率定长队列

采用核心支持库基础代码编写,稳定高效,代码简洁明了,方便维护和升级,百万次压入弹出耗时94毫秒。先进先出模式!

在之前的版本上的一次升级,命令按照核心支持库中的“队列”进行了效仿,效率是核心支持库的N倍!

.版本 2 .支持库 EThread .程序集 定长队列, , 公开 .程序集变量 队列数组, 整数型, , "1" .程序集变量 私_队列长度, 整数型 .程序集变量 私_起始位置, 整数型 .程序集变量 私_结尾位置, 整数型 .程序集变量 私_临界许可, 整数型 .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用 私_临界许可 = 创建进入许可证 () .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用 删除进入许可证 (私_临界许可) .子程序 初始化队列, , 公开, '队列使用前要先初始化,初始化队列不支持线程安全。 .参数 队列长度, 整数型 私_队列长度 = 队列长度 重定义数组 (队列数组, 假, 队列长度) 进入许可区 (私_临界许可) 私_起始位置 = 0 私_结尾位置 = 0 退出许可区 (私_临界许可) .子程序 压入, 逻辑型, 公开 .参数 队列值, 整数型 进入许可区 (私_临界许可) .如果 (私_结尾位置 = 私_队列长度) .如果真 (私_起始位置 = 0 或 私_起始位置 = 1) ' 判断一下弹出的位置在哪,避免压过界! 退出许可区 (私_临界许可) 返回 (假) .如果真结束 私_结尾位置 = 1 队列数组 [私_结尾位置] = 队列值 退出许可区 (私_临界许可) 返回 (真) .否则 .如果真 (私_结尾位置 + 1 = 私_起始位置) ' 判断一下弹出的位置在哪,避免压过界! 退出许可区 (私_临界许可) 返回 (假) .如果真结束 私_结尾位置 = 私_结尾位置 + 1 队列数组 [私_结尾位置] = 队列值 退出许可区 (私_临界许可) 返回 (真) .如果结束 .子程序 弹出, 逻辑型, 公开 .参数 接受数据, 整数型, 参考 进入许可区 (私_临界许可) .如果真 (私_起始位置 = 0 且 私_结尾位置 = 0) ' 判断一下 是否两个位置都没有变化 退出许可区 (私_临界许可) 返回 (假) .如果真结束 .如果 (私_起始位置 = 私_队列长度) .如果 (私_结尾位置 = 0) ' 结尾位置可以和起始位置一样,所以这里不需要判断 结尾位置是否等于1 判断是否等于0 就行 严谨 退出许可区 (私_临界许可) 返回 (假) .否则 .如果真 (私_结尾位置 = 私_队列长度) ' 判断一下弹出的位置在哪,避免压过界!结尾位置都没有从头开始,起始位置不能越界! 退出许可区 (私_临界许可) 返回 (假) .如果真结束 .如果结束 私_起始位置 = 1 接受数据 = 队列数组 [私_起始位置] 退出许可区 (私_临界许可) 返回 (真) .否则 .如果真 (私_起始位置 = 私_结尾位置) ' 如果两个一致 就没啥东西可以弹了 退出许可区 (私_临界许可) 返回 (假) .如果真结束 私_起始位置 = 私_起始位置 + 1 接受数据 = 队列数组 [私_起始位置] 退出许可区 (私_临界许可) 返回 (真) .如果结束 .子程序 是否为空, 逻辑型, 公开 进入许可区 (私_临界许可) .如果 (私_起始位置 = 私_结尾位置) 退出许可区 (私_临界许可) 返回 (真) .否则 退出许可区 (私_临界许可) 返回 (假) .如果结束 .子程序 取队列首节点, 逻辑型, 公开 .参数 接受数据, 整数型, 参考 进入许可区 (私_临界许可) .如果 (私_起始位置 ≠ 私_结尾位置) 接受数据 = 队列数组 [私_起始位置] 退出许可区 (私_临界许可) 返回 (真) .否则 退出许可区 (私_临界许可) 返回 (假) .如果结束 .子程序 取大小, 整数型, 公开 .局部变量 局_队列大小, 整数型 进入许可区 (私_临界许可) 局_队列大小 = 私_结尾位置 - 私_起始位置 退出许可区 (私_临界许可) 返回 (局_队列大小) .子程序 清空, , 公开 .局部变量 局_计次, 整数型 进入许可区 (私_临界许可) 私_起始位置 = 0 私_结尾位置 = 0 退出许可区 (私_临界许可)
分类
易语言例程

获取窗口内鼠标坐标易语言源码

.版本 2 .支持库 shellEx .支持库 spec .程序集 窗口程序集1 .程序集变量 句柄, 整数型 .程序集变量 坐标, 精易_坐标 .程序集变量 F2, 整数型 .程序集变量 F3, 整数型 .子程序 __启动窗口_创建完毕 句柄 = 窗口_取句柄 (, , “WindowsForms10.Window.8.app.0.33c0d9d”, “BlueStacks App Player”) ' 这个得拿热键测试 不然没法测试 F2 = 注册热键 (取窗口句柄 (), 标签1.取窗口句柄 (), 0, #F2键) F3 = 注册热键 (取窗口句柄 (), 标签1.取窗口句柄 (), 0, #F3键) .子程序 _标签1_反馈事件, 整数型 .参数 参数一, 整数型 .参数 参数二, 整数型 .如果真 (参数一 = F2) 坐标 = 窗口_取坐标 (句柄) 调试输出 (坐标.横) 调试输出 (坐标.纵) .如果真结束 .如果真 (参数一 = F3) 鼠标_消息 (句柄, 坐标.横, 坐标.纵) .如果真结束
分类
图形图像源码

百度旋转验证位图自动裁切(纯算法)

最近百度旋转很火啊。论坛搜了各种旋转都不太理想。于是就自行研究。

研究位图,发现位图旋转会自动扩充,经过研究,正方形和长方形任意旋转的最大宽度和高度是他的对角长度。

旋转之后,根据对角长度结合原长度和高度,计算出需要裁切的位置。

有研究百度旋转的可以拿去继续搞。

有的人可能不知道这个和位图旋转的区别,附上一个位图原始的旋转效果代码

百度旋转验证位图自动裁切(纯算法)