为编程爱好者分享易语言教程源码的资源网
____广告位招租____ ____广告位招租____ 服务器99/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器
____广告位招租____ ____广告位招租____ 服务器低至38/年 ____广告位招租____ ____广告位招租____ 挂机,建站服务器

网站首页 > 易语言相关 > 易语言模块源码 正文

图像处理和矩阵计算源码

三叶资源网 2018-12-25 10:45:43 易语言模块源码 2396 ℃ 1 评论

图像处理和矩阵计算源码

@laizewei

.版本 2

.程序集 程序集1, , , ' 本源码来自三叶资源网(www.sanye.cx)

.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码


_临时子程序 ()  ' 在初始化代码执行完毕后调用测试代码
返回 (0)  ' 可以根据您的需要返回任意数值

.子程序 _临时子程序

' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。


.子程序 数值_右移_ASM, 整数型, , 将某整数的数据位右移指定位数,返回移动后的结果。本命令为中级命令。
.参数 欲移动的整数, 整数型
.参数 欲移动的位数, 整数型

置入代码 ({ 139, 69, 8 })  ' 8B45 08       mov eax,dword ptr ss:[ebp+0x8]
置入代码 ({ 139, 77, 12 })  ' 8B4D 0C       mov ecx,dword ptr ss:[ebp+0xC]
置入代码 ({ 211, 232 })  ' D3E8          shr eax,cl
置入代码 ({ 201 })  ' C9              leave
置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
返回 (0)

.子程序 GdipRotateAtMatrix, 整数型
.参数 matrix, 整数型
.参数 angle, 小数型
.参数 center_x, 小数型
.参数 center_y, 小数型, , ' 本源码来自三叶资源网(www.sanye.cx)
.参数 order, 整数型
.局部变量 返回值, 整数型

.如果 (order = 0)
    返回值 = GdipTranslateMatrix (matrix, center_x, center_y, order)
    返回值 = GdipRotateMatrix (matrix, angle, order)
    返回值 = GdipTranslateMatrix (matrix, -center_x, -center_y, order)
.否则
    返回值 = GdipTranslateMatrix (matrix, -center_x, -center_y, order)
    返回值 = GdipRotateMatrix (matrix, angle, order)
    返回值 = GdipTranslateMatrix (matrix, center_x, center_y, order)
.如果结束
返回 (返回值)

.子程序 数值_位异或_ASM, 整数型, , 如两个数值对应比特位的值不相等,则返回值的对应位就为1,否则为0
.参数 _参数1, 整数型
.参数 _参数2, 整数型

置入代码 ({ 139, 69, 8, 139, 77, 12, 51, 193, 201, 194, 8, 0 })
返回 (0)

.子程序 数组中间值, 整数型
.参数 参数1, 整数型, 数组

最快排序_整数 (参数1, 真)
返回 (参数1 [(取数组成员数 (参数1) + 1) \ 2])

.子程序 数值_位与_ASM, 整数型, , 如两个数值有某共同比特位为1,则返回值的对应位也为1,否则为0。返回计算后的结果。本命令为中级命令。
.参数 位运算数值一, 整数型
.参数 位运算数值二, 整数型

置入代码 ({ 139, 69, 8 })  ' 8B45 08       mov eax,dword ptr ss:[ebp+0x8]
置入代码 ({ 139, 77, 12 })  ' 8B4D 0C       mov ecx,dword ptr ss:[ebp+0xC]
置入代码 ({ 33, 200 })  ' 21C8          and eax,ecx
置入代码 ({ 201 })  ' C9              leave
置入代码 ({ 194, 8, 0 })  ' C2 0800         retn 0x8
返回 (0)

.子程序 最快排序_整数
.参数 排序的数组, 整数型, 参考 数组
.参数 从小到大排序, 逻辑型, 可空, 默认从小到大
.局部变量 基数, 整数型
.局部变量 i, 整数型
.局部变量 j, 整数型
.局部变量 新基索引, 整数型
.局部变量 栈起始点, 整数型, , "0"
.局部变量 栈结束点, 整数型, , "0"
.局部变量 栈指针, 整数型
.局部变量 起始点, 整数型
.局部变量 结束点, 整数型
.局部变量 数组总数, 整数型
.局部变量 随机种子, 整数型

数组总数 = 取数组成员数 (排序的数组)
.如果真 (数组总数 = 0)
    返回 ()
.如果真结束
从小到大排序 = 选择 (是否为空 (从小到大排序), 真, 从小到大排序)
随机种子 = 31
置随机数种子 (随机种子)
重定义数组 (栈起始点, 假, 数组总数)
重定义数组 (栈结束点, 假, 数组总数)
栈指针 = 1

起始点 = 1
结束点 = 数组总数
栈起始点 [1] = 起始点
栈结束点 [1] = 结束点

.判断循环首 (栈指针 > 0)
    起始点 = 栈起始点 [栈指针]
    结束点 = 栈结束点 [栈指针]
    栈指针 = 栈指针 - 1

    .如果真 (起始点 = 结束点)
        到循环尾 ()
    .如果真结束

    i = 起始点
    j = 结束点
    变量交换_ASM (排序的数组 [起始点], 排序的数组 [取随机数 (起始点, 结束点)])
    基数 = 排序的数组 [起始点]
    .判断循环首 (真)
        .变量循环首 (j, i, -1, j)
            .判断开始 (从小到大排序 = 真)
                .如果真 (排序的数组 [j] < 基数)  ' 从大到小  > ,从小到大 <
                    跳出循环 ()
                .如果真结束

            .默认
                .如果真 (排序的数组 [j] > 基数)  ' 从大到小  > ,从小到大 <
                    跳出循环 ()
                .如果真结束

            .判断结束

        .变量循环尾 ()
        .如果真 (j ≤ i)
            ' i
            新基索引 = i
            跳出循环 ()
        .如果真结束

        .变量循环首 (i, j, 1, i)
            .判断开始 (从小到大排序 = 真)
                .如果真 (排序的数组 [i] > 基数)  ' 从大到小 < ,从小到大 >
                    跳出循环 ()
                .如果真结束

            .默认
                .如果真 (排序的数组 [i] < 基数)  ' 从大到小 < ,从小到大 >
                    跳出循环 ()
                .如果真结束

            .判断结束

        .变量循环尾 ()

        .如果真 (i ≥ j)
            ' j
            新基索引 = j
            跳出循环 ()
        .如果真结束

        变量交换_ASM (排序的数组 [j], 排序的数组 [i])
    .判断循环尾 ()
    变量交换_ASM (排序的数组 [起始点], 排序的数组 [新基索引])
    .如果真 (新基索引 > 起始点)
        栈指针 = 栈指针 + 1
        栈起始点 [栈指针] = 起始点
        栈结束点 [栈指针] = 新基索引
    .如果真结束

    .如果真 (新基索引 < 结束点 - 1)
        栈指针 = 栈指针 + 1
        栈起始点 [栈指针] = 新基索引 + 1
        栈结束点 [栈指针] = 结束点
    .如果真结束

.判断循环尾 ()

.子程序 变量交换_ASM, , , 以变量和变量的交换方式,来交换两个变量数据,注意两变量要是相同类型的
.参数 变量1, 通用型, 参考, 变量;在某种情况下可以是数据
.参数 变量2, 通用型, 参考, 变量;在某种情况下可以是数据

置入代码 ({ 139, 69, 8, 139, 77, 12, 139, 16, 135, 17, 137, 16 })

.子程序 数组最大值, 整数型
.参数 参数1, 整数型, 数组

最快排序_整数 (参数1, 真)
返回 (参数1 [取数组成员数 (参数1)])

.子程序 数组最小值, 整数型
.参数 参数1, 整数型, 数组

最快排序_整数 (参数1, 真)
返回 (参数1 [1])

.子程序 取颜色值_ASM, 整数型, , RGB颜色
.参数 红色, 整数型
.参数 绿色, 整数型
.参数 蓝色, 整数型
.局部变量 ret, 整数型

置入代码 ({ 139, 69, 8, 139, 93, 12, 139, 77, 16, 193, 225, 16, 193, 227, 8, 11, 216, 11, 203, 137, 77, 252 })
' mov eax,[ebp+8];R
' mov ebx,[ebp+12];G
' mov ecx,[ebp+16];B
' shl ecx,16
' shl ebx,8
' or ebx,eax
' or ecx,ebx
' mov [ebp-4],ecx
返回 (ret)

.子程序 GetRGB_ASM
.参数 rgb, 整数型
.参数 r, 整数型, 参考 可空
.参数 g, 整数型, 参考 可空
.参数 b, 整数型, 参考 可空

r = 数值_位与_ASM (rgb, 255)
g = 数值_位与_ASM (数值_右移_ASM (rgb, 8), 255)
b = 数值_位与_ASM (数值_右移_ASM (rgb, 16), 255)

.子程序 COM_GUIDtoString2, 文本型, , StringFromGUID2
.参数 clsid, 字节集
.局部变量 str, 字节集

str = 取空白字节集 (78)
StringFromGUID2_ (clsid, str, 78)
返回 (Encoder.W2A (str))

.子程序 COM_StringToGUID2, 字节集, , CLSIDFromString
.参数 text, 文本型
.局部变量 clsid, 字节集

clsid = 取空白字节集 (16)
CLSIDFromString2 (Encoder.A2W (text), clsid)
返回 (clsid)

.子程序 ARGB2RGB_ASM, 整数型
.参数 ARGB颜色, 整数型
.参数 透明度, 整数型, 参考 可空
.局部变量 c, 整数型
.局部变量 a, 整数型

c = 0
a = 0
置入代码 ({ 139, 69, 8, 102, 139, 216, 193, 232, 16, 134, 195, 134, 101, 248, 193, 224, 16, 102, 139, 195, 137, 69, 252 })
' add byte ptr [ebp+08h], al
' mov bx, ax
' shr eax, 10h
' xchg bl, al
' xchg byte ptr [ebp-08h], ah
' shl eax, 10h
' mov ax, bx
' mov dword ptr [ebp-04h], eax
.如果真 (是否为空 (透明度) = 假)
    透明度 = a
.如果真结束
返回 (c)

.子程序 RGB2ARGB_ASM, 整数型, , 汇编_RGB2ARGB
.参数 color, 整数型
.参数 alpha, 整数型
.局部变量 r, 整数型

置入代码 ({ 139, 69, 8, 139, 93, 8, 139, 77, 8, 139, 85, 12, 193, 232, 16, 37, 255, 0, 0, 0, 193, 235, 8, 129, 227, 255, 0, 0, 0, 129, 225, 255, 0, 0, 0, 193, 226, 24, 193, 225, 16, 193, 227, 8, 11, 216, 11, 203, 11, 209, 137, 85, 252 })
' mov eax,[ebp+8];R
' mov ebx,[ebp+8];G
' mov ecx,[ebp+8];B
' mov edx,[ebp+12];A
' shr eax,16
' and eax,255
' shr ebx,8
' and ebx,255
' and ecx,255
' shl edx,24
' shl ecx,16
' shl ebx,8
' or ebx,eax
' or ecx,ebx
' or edx,ecx
' mov dword ptr [ebp-4],edx
返回 (r)
文件下载

Tags:

来源:三叶资源网,欢迎分享,公众号:iisanye,(三叶资源网⑤群:21414575

已有1位网友发表了看法:

欢迎 发表评论:

百度站内搜索
关注微信公众号
三叶资源网⑤群:三叶资源网⑤群

网站分类
随机tag
图片旋转工具邮箱SSL发信PcHook微博引流远程端口Accessible电脑QQ微信扫码支付易语言滑动验证码Quoted树形框项目切换qq消息群发网页填表Hp-Socket1MD5自效验易写易库限制上网易代码编辑框动画框应用例程名片点赞
最新评论