时间:2021-05-19
DLL命令表
.版本 2.DLL命令 拷贝内存_BITMAPINFOHEADER, 整数型, "kernel32", "RtlMoveMemory", , RtlMoveMemory .参数 目标数据地址, 字节集, 传址, lpvDest .参数 源数据, BITMAPINFOHEADER, 传址, lpvSource .参数 尺寸, 整数型, , 40cbCopy.DLL命令 拷贝内存_ICONFILEHEADER, 整数型, "kernel32", "RtlMoveMemory", , RtlMoveMemory .参数 目标数据地址, 字节集, 传址, lpvDest .参数 源数据, ICONFILEHEADER, , lpvSource .参数 尺寸, 整数型, , 22cbCopy自定义数据类型表
.版本 2.数据类型 ICONFILEHEADER, , 文件头22 .成员 idReserved, 短整数型, , , 为0 .成员 idType, 短整数型, , , 为1图标,2为鼠标 .成员 idCount, 短整数型, , , 文件中图标个数,为1 .成员 bWidth, 字节型, , , 宽,为16或32 .成员 bHeight, 字节型, , , 高,为16或32 .成员 bColorCount, 字节型, , , 调色盘颜色数量:16或255 或0 .成员 bReserved, 字节型, , , 为0 .成员 wPlanes, 短整数型, , , idType为2,鼠标热点左边 .成员 wBitCount, 短整数型, , , 每个像素占的位数 .idType为2,鼠标热点顶边 .成员 dwBytesInRes, 整数型, , , 图标文件后四项总字节数 .成员 dwImageOffset, 整数型, , , 图标文件头长度,为22.数据类型 BITMAPINFOHEADER, , 信息头40 .成员 biSize, 整数型, , , 信息头的长度,为40 .成员 biWidth, 整数型, , , 宽 .成员 biHeight, 整数型, , , 扫描两遍,值为实实际高度的2 倍 .成员 iPlanes, 短整数型, , , 为1 .成员 biBitCount, 短整数型, , , 每个像素占的位数 .成员 biCompression, 整数型, , , 为0 .成员 biSizeImage, 整数型, , , 图标文件后三项总字节数 .成员 biXPelsPerMeter, 整数型, , , 为0 .成员 biYPelsPerMeter, 整数型, , , 为0 .成员 biClrUsed, 整数型, , , 为0 .成员 biClrImportant, 整数型, , , 为0.数据类型 RGBDATA, , 图像信息中每一个像素包含的RGB .成员 B, 字节型 .成员 R, 字节型 .成员 G, 字节型.数据类型 图像大小 .成员 宽度, 整数型 .成员 高度, 整数型提取ICO图标
.版本 2.支持库 edroptarget.支持库 iext2.支持库 eAPI.支持库 iext5.支持库 shell.支持库 eImgConverter.支持库 BmpOperate.程序集 窗口程序集1.程序集变量 程序集_欲删除的图标, 文本型.程序集变量 程序集_文件路径, 文本型.程序集变量 程序集_图像大小, 图像大小.子程序 __启动窗口_创建完毕拖放对象1.注册拖放控件 (_启动窗口.取窗口句柄 ())检测图像欲转换大小 ().子程序 _拖放对象1_得到文件.参数 接收到的文件路径, 文本型编辑框1.内容 = 接收到的文件路径.子程序 _按钮_提取图标_被单击.局部变量 i, 整数型.局部变量 图标资源, 字节集.局部变量 后缀名, 文本型.局部变量 是否空图标, 字节集.局部变量 画板的底图, 字节集.如果真 (寻找文本 (程序集_文件路径, “.”, , 真) = -1) 信息框 (“文件路径不正确,请尝试更换文件再试!”, #错误图标, ) 返回 ().如果真结束.计次循环首 (取文件内图标数 (程序集_文件路径), i) 提取资源文件图标 (程序集_文件路径, 0, 取运行目录 () + “\” + 到文本 (i) + “.ico”, i).计次循环尾 ().如果真 (取文件内图标数 (程序集_文件路径) ≠ 0) 气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “图标提取成功。”, -1, ).如果真结束程序集_欲删除的图标 = 编辑框1.内容' -------上面代码提取平常的 EXE、DLL、ICL、ICO。图标 下面的是为了将图像转换成为BMP后在转换ICO图标----------后缀名 = 到小写 (取文本右边 (程序集_文件路径, 4)).如果真 (后缀名 ≠ “.exe” 且 后缀名 ≠ “.dll” 且 后缀名 ≠ “.icl” 且 后缀名 ≠ “.ico”) 画板1.底图 = 读入文件 (编辑框1.内容) 画板的底图 = 画板1.底图 画板1.宽度 = 程序集_图像大小.宽度 画板1.高度 = 程序集_图像大小.高度 画板1.底图方式 = #缩放图片 写到文件 (取特定目录 (11) + “\” + 取文本右边 (后缀名, 1), 画板1.取图片 (程序集_图像大小.宽度, 程序集_图像大小.高度)) 转换到BMP (取特定目录 (11) + “\” + 取文本右边 (后缀名, 1), 取特定目录 (11) + “\” + 取文本右边 (后缀名, 1) + “.bmp”) 程序集_文件路径 = 取特定目录 (11) + “\” + 取文本右边 (后缀名, 1) + “.bmp” .如果真 (取文本右边 (程序集_文件路径, 4) = “.bmp”) BMP转ICO (读入文件 (程序集_文件路径), 图标资源) 写到文件 (取运行目录 () + “\1.ico”, 图标资源) 是否空图标 = 读入文件 (取运行目录 () + “\1.ico”) .如果真 (是否空图标 = { }) ' 如果方法一失败 自动转换方法二转ico BMP转ICO2 (读入文件 (程序集_文件路径), 图标资源) 写到文件 (取运行目录 () + “\1.ico”, 图标资源) .如果真结束 .如果真结束 .如果 (画板的底图 = { }) 气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “图标提取失败。”, -1, ) .否则 气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “图标提取成功。”, -1, ) .如果结束.如果真结束画板1.底图 = { }.子程序 _编辑框1_内容被改变.局部变量 图标数, 整数型程序集_文件路径 = 编辑框1.内容.如果真 (寻找文本 (程序集_文件路径, “.lnk”, , 真) ≠ -1) 编辑框1.内容 = 查询快捷方式 (程序集_文件路径).如果真结束图标数 = 取文件内图标数 (程序集_文件路径)标题 = “发现图标数为:” + 到文本 (图标数) + “个”编辑框1.被选择字符数 = 取文本长度 (程序集_文件路径).如果真 (图标数 = 0) 气球提示框1.弹出提示框 (取鼠标水平位置 (), 取鼠标垂直位置 (), “文件内没有发现可用图标,如果放入的是图像将自动转换成为图标文件” + #换行符 + “如果不是图像将会转换失败!”, -1, 真).如果真结束.子程序 _按钮_删除图标_被单击.局部变量 i, 整数型.如果真 (信息框 (“删除的仅是刚才提取的图标而且必须是非图像提取的图标”, #是否钮, ) = #是钮) i = 取文件内图标数 (程序集_欲删除的图标) ' 提取文件图标按钮被单击后 程序集才有会有数据 .如果真 (i = 0) 返回 () .如果真结束 .计次循环首 (取文件内图标数 (程序集_欲删除的图标), i) 删除文件 (取运行目录 () + “\” + 到文本 (i) + “.ico”) .计次循环尾 () 程序集_欲删除的图标 = “”.如果真结束.子程序 _按钮_选择文件_被单击通用对话框1.初始目录 = 取特定目录 (3)通用对话框1.不改变目录 = 真通用对话框1.过滤器 = “可执行文件(*.exe)|*.exe|动态链接库(*.dll)|*.dll|图标资源库(*.icl)|*.icl|图像文件(*.bmp;*.jpg;*.jpeg;*.gif;*.ico)|*.bmp;*.jpg;*.jpeg;*.gif;*.ico|所有文件(*.*)|*.*”.如果真 (通用对话框1.打开 () = 真) 编辑框1.内容 = 通用对话框1.文件名.如果真结束.子程序 BMP转ICO, 逻辑型, 公开, 用位图转换,非本人所写.参数 被转BMP数据, 字节集.参数 获得ICO数据, 字节集, 参考.参数 透明色, 整数型, 可空, 默认为白色.参数 CUR光标, 逻辑型, 可空, 真为CUR光标,假为图标.参数 指针左热点, 字节型, 可空, CUR光标为真时有效,以0开始.参数 指针顶热点, 字节型, 可空, CUR光标为真时有效,以0开始.局部变量 位图, 位图.局部变量 IFH, ICONFILEHEADER.局部变量 BIH, BITMAPINFOHEADER.局部变量 RGBD, 字节集.局部变量 FBY, 字节集.局部变量 I.局部变量 J.局部变量 K1.局部变量 K2.局部变量 BY.局部变量 BYY.局部变量 BY2.局部变量 字节集, 字节集.局部变量 宽度, 整数型.局部变量 高度, 整数型.局部变量 A, 整数型.局部变量 TMZ, 整数型.局部变量 DD, 整数型.局部变量 补码, 整数型.如果真 (位图.载入数据 (被转BMP数据) = 假) 返回 (假).如果真结束宽度 = 位图.取宽度 ().如果真 (宽度 > 255) 返回 (假).如果真结束高度 = 位图.取高度 ().如果真 (高度 > 255) 返回 (假).如果真结束.如果 (宽度 % 32 ≠ 0) TMZ = 宽度 ÷ 32 + 1.否则 TMZ = 宽度 ÷ 32.如果结束TMZ = TMZ × 高度补码 = 宽度 % 4IFH.idReserved = 0IFH.idType = 选择 (CUR光标, 2, 1)IFH.idCount = 1IFH.bHeight = 高度IFH.bWidth = 宽度IFH.bColorCount = 0IFH.bReserved = 0IFH.wPlanes = 选择 (CUR光标, 指针左热点, 1)IFH.wBitCount = 选择 (CUR光标, 指针顶热点, 24)IFH.dwBytesInRes = 宽度 × 高度 × 3 + TMZ × 4 + 补码 × 高度 + 40 ' 3240IFH.dwImageOffset = 22 ' 取文本长度 (ifh)BIH.biSize = 40 ' 取文本长度 (bih)BIH.biWidth = 宽度BIH.biHeight = 高度 × 2 ' !!!BIH.iPlanes = 1BIH.biBitCount = 24BIH.biCompression = 0BIH.biSizeImage = 宽度 × 高度 × 3 + 补码 × 高度 ' 3200BIH.biXPelsPerMeter = 0BIH.biYPelsPerMeter = 0BIH.biClrUsed = 0BIH.biClrImportant = 0.如果 (是否为空 (透明色)) BY = 16777215.否则 BY = 透明色.如果结束RGBD = 取空白字节集 (BIH.biSizeImage)FBY = 取空白字节集 (TMZ × 4)K1 = 0K2 = 1A = 128.计次循环首 (高度, I) ' 从左下角逐行扫描 .计次循环首 (宽度, J) BYY = 位图.取某点颜色 (J - 1, 高度 - I) ' 获得图像上某一点的颜色Long值 .如果 (BYY ≠ BY) ' 如果该点为透明色 RGBD [K1 + 3] = 位与 (BYY, 255) ' 取整 (BYY ÷ 65536) RGBD [K1 + 2] = 位与 (右移 (BYY, 8), 255) RGBD [K1 + 1] = 右移 (BYY, 16) .否则 BY2 = BY2 + A .如果结束 K1 = K1 + 3 A = A ÷ 2 .如果真 (A = 0) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真结束 .计次循环尾 () .如果真 (A ≠ 128) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真结束 DD = K2 % 4 .如果真 (DD ≠ 1) K2 = K2 + 5 - DD .如果真结束 K1 = K1 + 补码.计次循环尾 ()获得ICO数据 = 取空白字节集 (22)拷贝内存_ICONFILEHEADER (获得ICO数据, IFH, 22)字节集 = 取空白字节集 (40)拷贝内存_BITMAPINFOHEADER (字节集, BIH, 40)获得ICO数据 = 获得ICO数据 + 字节集 + RGBD + FBY返回 (真).子程序 BMP转ICO2, 逻辑型, 公开, 用数据转换,非本人所写.参数 被转BMP数据, 字节集.参数 获得ICO数据, 字节集, 参考.参数 透明色, 整数型, 可空, 默认为白色.参数 CUR光标, 逻辑型, 可空, 真为CUR光标,假为图标.参数 指针左热点, 字节型, 可空, CUR光标为真时有效,以0开始.参数 指针顶热点, 字节型, 可空, CUR光标为真时有效,以0开始.局部变量 BMP数据2, 字节集.局部变量 IFH, ICONFILEHEADER.局部变量 BIH, BITMAPINFOHEADER.局部变量 RGBD, 字节集.局部变量 FBY, 字节集.局部变量 I.局部变量 J.局部变量 K1.局部变量 K2.局部变量 BY, RGBDATA.局部变量 BYY, RGBDATA.局部变量 BY2.局部变量 字节集, 字节集.局部变量 宽度, 整数型.局部变量 高度, 整数型.局部变量 长度, 整数型.局部变量 A, 整数型.局部变量 TMZ, 整数型.局部变量 DD, 整数型.局部变量 补码, 整数型.如果真 (取字节集长度 (被转BMP数据) < 54 或 被转BMP数据 [1] ≠ 66 或 被转BMP数据 [2] ≠ 77) ' BM6 返回 (假).如果真结束宽度 = 取字节集数据 (被转BMP数据, #整数型, 19)高度 = 取字节集数据 (被转BMP数据, #整数型, 23)长度 = 取字节集数据 (被转BMP数据, #整数型, 35).如果真 (宽度 > 255) 返回 (假).如果真结束.如果真 (高度 > 255) 返回 (假).如果真结束BMP数据2 = 取字节集中间 (被转BMP数据, 55, 长度).如果 (宽度 % 32 ≠ 0) TMZ = 宽度 ÷ 32 + 1.否则 TMZ = 宽度 ÷ 32.如果结束TMZ = TMZ × 高度补码 = 宽度 % 4IFH.idReserved = 0IFH.idType = 选择 (CUR光标, 2, 1)IFH.idCount = 1IFH.bHeight = 高度IFH.bWidth = 宽度IFH.bColorCount = 0IFH.bReserved = 0IFH.wPlanes = 选择 (CUR光标, 指针左热点, 1)IFH.wBitCount = 选择 (CUR光标, 指针顶热点, 24)IFH.dwBytesInRes = 宽度 × 高度 × 3 + TMZ × 4 + 补码 × 高度 + 40 ' 3240IFH.dwImageOffset = 22 ' 取文本长度 (ifh)BIH.biSize = 40 ' 取文本长度 (bih)BIH.biWidth = 宽度BIH.biHeight = 高度 × 2 ' !!!BIH.iPlanes = 1BIH.biBitCount = 24BIH.biCompression = 0BIH.biSizeImage = 宽度 × 高度 × 3 + 补码 × 高度 ' 3200BIH.biXPelsPerMeter = 0BIH.biYPelsPerMeter = 0BIH.biClrUsed = 0BIH.biClrImportant = 0.如果真 (取字节集长度 (BMP数据2) < BIH.biSizeImage) 返回 (假).如果真结束.如果 (是否为空 (透明色)) BY.R = 255 BY.G = 255 BY.B = 255.否则 BY.R = 位与 (透明色, 255) ' 取整 (BYY ÷ 65536) BY.G = 位与 (右移 (透明色, 8), 255) BY.B = 右移 (透明色, 16).如果结束RGBD = 取空白字节集 (BIH.biSizeImage)FBY = 取空白字节集 (TMZ × 4)K1 = 0K2 = 1A = 128.计次循环首 (高度, I) ' 从左下角逐行扫描 .计次循环首 (宽度, J) BYY.R = BMP数据2 [K1 + 3] BYY.G = BMP数据2 [K1 + 2] BYY.B = BMP数据2 [K1 + 1] .如果 (BYY.R ≠ BY.R 或 BYY.G ≠ BY.G 或 BYY.B ≠ BY.B) ' 如果该点为透明色 RGBD [K1 + 3] = BYY.R RGBD [K1 + 2] = BYY.G RGBD [K1 + 1] = BYY.B .否则 BY2 = BY2 + A .如果结束 K1 = K1 + 3 A = A ÷ 2 .如果真 (A = 0) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真结束 .计次循环尾 () .如果真 (A ≠ 128) FBY [K2] = BY2 K2 = K2 + 1 A = 128 BY2 = 0 .如果真结束 DD = K2 % 4 .如果真 (DD ≠ 1) K2 = K2 + 5 - DD .如果真结束 K1 = K1 + 补码.计次循环尾 ()获得ICO数据 = 取空白字节集 (22)拷贝内存_ICONFILEHEADER (获得ICO数据, IFH, 22)字节集 = 取空白字节集 (40)拷贝内存_BITMAPINFOHEADER (字节集, BIH, 40)获得ICO数据 = 获得ICO数据 + 字节集 + RGBD + FBY返回 (真).子程序 检测图像欲转换大小.如果真 (单选框_16.选中 = 真) 程序集_图像大小.宽度 = 16 程序集_图像大小.高度 = 16 返回 ().如果真结束.如果真 (单选框_32.选中 = 真) 程序集_图像大小.宽度 = 32 程序集_图像大小.高度 = 32 返回 ().如果真结束.如果真 (单选框_64.选中 = 真) 程序集_图像大小.宽度 = 64 程序集_图像大小.高度 = 64 返回 ().如果真结束.如果真 (单选框_128.选中 = 真) 程序集_图像大小.宽度 = 128 程序集_图像大小.高度 = 128 返回 ().如果真结束.子程序 _单选框_16_被单击检测图像欲转换大小 ().子程序 _单选框_32_被单击检测图像欲转换大小 ().子程序 _单选框_64_被单击检测图像欲转换大小 ().子程序 _单选框_128_被单击检测图像欲转换大小 ().子程序 __启动窗口_将被销毁删除文件 (取特定目录 (11) + “\” + 取文本右边 (到小写 (取文本右边 (程序集_文件路径, 4)), 1))删除文件 (取特定目录 (11) + “\” + 取文本右边 (到小写 (取文本右边 (程序集_文件路径, 4)), 1) + “.bmp”)运行结果:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
旋风图片格式转换器如何使用?旋风图片格式转换器是一款专门用于图像格式转换的工具,软件支持jpg、PNG、BMP三种格式相互转换,不太清楚这款软件是如何使用的朋友
分辨率,32位色深,你在桌面上看到的每个图标的图像格式就是256色32x32象素大小。如果在相同的显示环境下,WindowsXP操作系统中,这些图标的图像格式就
图像格式的处理。经常浏览网页的网友都了解,网页中的图像文件格式大多为JPEG、GIF、PNG、TIFF等。然而并不是所有浏览器都能够支持上述图像格式。大多数浏览
SVG(ScalableVectorGraphics)可缩放矢量图,是一种基于XML语法的图像格式。其他图像格式都是基于像素处理的,SVG则是属于对图像的形状描
网页图像。图像是网页元素中重要的视觉语言,它直观、生动、容易理解。目前网络上主流图像格式有:PNG图像、JPEG图像和GIF图像等,各自都有不同的特点和适用的范