开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 196|回复: 3
收起左侧

[闲聊] dds图像转bmp

[复制链接]
发表于 昨天 18:06 | 显示全部楼层 |阅读模式   北京市北京市
  
窗口程序集名保 留  保 留备 注
窗口程序集1   
子程序名返回值类型公开备 注
_按钮1_被单击  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
_启动窗口.底图 = dds转bmp ( #图片1 )
子程序名返回值类型公开备 注
dds转bmp字节集 带透明通道的32位bmp
参数名类 型参考可空数组备 注
DDS文件字节集
变量名类 型静态数组备 注
当前偏移整数型 
块标识整数型 
块X整数型 
块Y整数型 
像素X整数型 
像素Y整数型 
行计数整数型 
列计数整数型 
整数型 
整数型 
压缩格式文本型 
临时颜色数据字节集 
BMP像素位置整数型 
颜色索引整数型 
颜色值整数型 
颜色1整数型 
颜色2整数型 
块颜色数据整数型 
调色板ARGB颜色4
像素索引表字节型4,4
bmp数据快速字节集对象 
bmp头bmp头 
块Y = 0
列计数 = 129
高 = 取字节集数据 (DDS文件, 3, 13) ÷ 4
宽 = 取字节集数据 (DDS文件, 3, 17) ÷ 4
' 创建BMP (_局部变量10 × 4, _局部变量9 × 4)
bmp头.BM = 19778
bmp头.开始地址 = 54
bmp头.biSize = 40
bmp头.biHeight = 高 × 4
bmp头.biWidth = 宽 × 4
bmp头.biSizeImage = bmp头.biHeight × bmp头.biWidth × 4
bmp头.文件长度 = bmp头.biSizeImage + 54
bmp头.biPlanes = 1
bmp头.biBitCount = 32
bmp头.biXPelsPerMeter = 4000
bmp头.biYPelsPerMeter = 4000
bmp数据.清除字节集 ()
bmp数据.添加 (bmp头.BM)
bmp数据.添加 (bmp头.文件长度)
bmp数据.添加 (bmp头.标识留空1)
bmp数据.添加 (bmp头.标识留空2)
bmp数据.添加 (bmp头.开始地址)
bmp数据.添加 (bmp头.biSize)
bmp数据.添加 (bmp头.biWidth)
bmp数据.添加 (bmp头.biHeight)
bmp数据.添加 (bmp头.biPlanes)
bmp数据.添加 (bmp头.biBitCount)
bmp数据.添加 (bmp头.biCompression)
bmp数据.添加 (bmp头.biSizeImage)
bmp数据.添加 (bmp头.biXPelsPerMeter)
bmp数据.添加 (bmp头.biYPelsPerMeter)
bmp数据.添加 (bmp头.biClrUsed)
bmp数据.添加 (bmp头.biClrImportant)
bmp数据.添加 (取空白字节集 (bmp头.biSizeImage))
压缩格式 = 取字节集数据 (DDS文件, 10, 85)
计次循环首 (高, 块标识)
计次循环首 (宽, 块X)
如果真 (压缩格式 ≠ “DXT1”)
列计数 = 列计数 + 8

颜色1 = 位与 (取字节集数据 (DDS文件, 2, 列计数), 65535)
颜色2 = 位与 (取字节集数据 (DDS文件, 2, 列计数), 65535)
块颜色数据 = 取字节集数据 (DDS文件, #整数型, 列计数)
调色板 [1].R = 位与 (右移 (颜色1, 0), 31) × 255 ÷ 31
调色板 [1].G = 位与 (右移 (颜色1, 5), 63) × 255 ÷ 63
调色板 [1].B = 位与 (右移 (颜色1, 11), 31) × 255 ÷ 31
调色板 [2].R = 位与 (右移 (颜色2, 0), 31) × 255 ÷ 31
调色板 [2].G = 位与 (右移 (颜色2, 5), 63) × 255 ÷ 63
调色板 [2].B = 位与 (右移 (颜色2, 11), 31) × 255 ÷ 31
如果 (颜色1 > 颜色2)
调色板 [3].B = 位与 (调色板 [1].B × 2 ÷ 3 + 调色板 [2].B ÷ 3, 255)
调色板 [3].G = 位与 (调色板 [1].G × 2 ÷ 3 + 调色板 [2].G ÷ 3, 255)
调色板 [3].R = 位与 (调色板 [1].R × 2 ÷ 3 + 调色板 [2].R ÷ 3, 255)
调色板 [4].B = 位与 (调色板 [2].B × 2 ÷ 3 + 调色板 [1].B ÷ 3, 255)
调色板 [4].G = 位与 (调色板 [2].G × 2 ÷ 3 + 调色板 [1].G ÷ 3, 255)
调色板 [4].R = 位与 (调色板 [2].R × 2 ÷ 3 + 调色板 [1].R ÷ 3, 255)

调色板 [3].B = 位与 (调色板 [1].B ÷ 2 + 调色板 [2].B ÷ 2, 255)
调色板 [3].G = 位与 (调色板 [1].G ÷ 2 + 调色板 [2].G ÷ 2, 255)
调色板 [3].R = 位与 (调色板 [1].R ÷ 2 + 调色板 [2].R ÷ 2, 255)
调色板 [4].B = 0
调色板 [4].G = 0
调色板 [4].R = 0
行计数 = 0
计次循环首 (4, 像素Y)
计次循环首 (4, 像素X)
像素索引表 [像素Y] [像素X]位与 (右移 (块颜色数据, 行计数), 3) + 1
行计数 = 行计数 + 2
计次循环尾 ()
计次循环尾 ()
计次循环首 (4, 像素Y)
计次循环首 (4, 像素X)
临时颜色数据 = 到字节集 (合成颜色_ (0, 调色板 [像素索引表 [像素Y] [像素X]].R, 调色板 [像素索引表 [像素Y] [像素X]].G, 调色板 [像素索引表 [像素Y] [像素X]].B))
颜色索引 = 像素X (块X - 1) × 4
颜色值 = bmp头.biHeight (像素Y (块标识 - 1) × 4) + 1
BMP像素位置 (颜色值 - 1) × bmp头.biWidth × 4 (颜色索引 - 1) × 4
bmp数据.替换字节集 (BMP像素位置 + 54, 4, 临时颜色数据)
计次循环尾 ()
计次循环尾 ()
块Y = 块Y + 1
计次循环尾 ()
计次循环尾 ()
返回 (bmp数据.取字节集 (, ))
子程序名返回值类型公开备 注
合成颜色_整数型 
参数名类 型参考可空数组备 注
A字节型
R字节型
G字节型
B字节型
返回 (左移 (A, 0)左移 (R, 8)左移 (G, 16)左移 (B, 24))


i支持库列表   支持库注释   
commobj通用对象支持库



dds转bmp.e (239.27 KB, 下载次数: 6)

评分

参与人数 1好评 +1 精币 +2 收起 理由
malin158 + 1 + 2 支持一波

查看全部评分

结帖率:100% (12/12)

签到天数: 16 天

发表于 10 小时前 | 显示全部楼层   辽宁省丹东市
        支持一波
回复 支持 反对

使用道具 举报

结帖率:87% (20/23)

签到天数: 7 天

发表于 昨天 21:18 | 显示全部楼层   广东省东莞市
支持一波  
回复 支持 反对

使用道具 举报

结帖率:65% (11/17)

签到天数: 16 天

发表于 昨天 18:19 | 显示全部楼层   山东省*
大佬是专业是吧?好货不少
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表