.版本 2
[/b
].子程序 解析WAS文件头, 逻辑型
|
(未填写子程序名) | | | |
|
|
|
文件路径 | 文本型 | | | |
方向数 | 整数型 | | | | 帧数 | 整数型 | | | | 宽度 | 整数型 | | | | 高度 | 整数型 | | | | 关键点X | 整数型 | | | | 关键点Y | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
文件号 | 整数型 | | |
文件标记 | 字节型 | | 2 |
头长度 | 短整数型 | | |
文件号 =
打开文件 (文件路径,
#读入, )
如果 (文件号 = 0
)
返回 (假)
读入字节集 (文件号, 文件标记, 2
)
如果 (文件标记
[1
] ≠ 53
或 文件标记
[2
] ≠ 50
)
关闭文件 (文件号
)
返回 (假)
读入短整数 (文件号, 头长度
) 读入短整数 (文件号, 方向数
)读入短整数 (文件号, 帧数
)读入短整数 (文件号, 宽度
)读入短整数 (文件号, 高度
)读入短整数 (文件号, 关键点X
)读入短整数 (文件号, 关键点Y
)关闭文件 (文件号
)返回 (真)
RGB转HSV调色算法实现
|
RGB到HSV | 逻辑型 | |
|
R | 字节型 | | | |
G | 字节型 | | | | B | 字节型 | | | | H | 小数型 | | | | S | 小数型 | | | | V | 小数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
fR | 小数型 | | |
fG | 小数型 | | |
fB | 小数型 | | |
fCMax | 小数型 | | |
fCMin | 小数型 | | |
fDelta | 小数型 | | |
fR = R ÷ 255
fG = G ÷ 255
fB = B ÷ 255
fCMax =
最大值 (fR,
最大值 (fG, fB
))
fCMin =
最小值 (fR,
最小值 (fG, fB
))
fDelta = fCMax - fCMin
V = fCMax
如果 (fCMax = 0
)
S = 0

S = fDelta ÷ fCMax
如果 (fDelta = 0
)
H = 0

判断 (fCMax = fR
)

H = 60 �
� ( (fG - fB
) ÷ fDelta
)
判断 (fCMax = fG
)

H = 60 �
� ( (fB - fR
) ÷ fDelta + 2
)
判断 (fCMax = fB
)

H = 60 �
� ( (fR - fG
) ÷ fDelta + 4
)

H = 0


如果 (H < 0
)

H = H + 360

返回 (真)
示例
变量名 | 类 型 | 静态 | 数组 | 备 注 |
方向数 | 整数型 | | |
帧数 | 整数型 | | |
宽度 | 整数型 | | |
高度 | 整数型 | | |
关键点X | 整数型 | | |
关键点Y | 整数型 | | |
H | 小数型 | | |
S | 小数型 | | |
V | 小数型 | | |
如果 (解析WAS文件头 ("test.was", 方向数, 帧数, 宽度, 高度, 关键点X, 关键点Y
))
调试输出 ("方向数:", 方向数
)
调试输出 ("帧数:", 帧数
)
调试输出 ("宽度:", 宽度
)
调试输出 ("高度:", 高度
)
调试输出 ("关键点X:", 关键点X
)
调试输出 ("关键点Y:", 关键点Y
)
调试输出 ("文件解析失败"
)
RGB到HSV (255, 0, 0, H, S, V
) 调试输出 ("红色 HSV:", H, S, V
)RGB到HSV (0, 255, 0, H, S, V
) 调试输出 ("绿色 HSV:", H, S, V
)RGB到HSV (0, 0, 255, H, S, V
) 调试输出 ("蓝色 HSV:", H, S, V
)
作者: 奔放的牛 时间: 2025-5-12 07:55
哥,你这代码...
作者: 奔放的牛 时间: 2025-5-12 07:59
都报错了
作者: 奔放的牛 时间: 2025-5-13 00:25
??你这读入短整数.子程序呢?
作者: 奔放的牛 时间: 2025-5-13 22:58
大佬!求解答啊
作者: 你的猫 时间: 2025-5-13 23:33
变量名 | 类 型 | 静态 | 数组 | 备 注 |
文件号 | 整数型 | | |
字节集数据 | 字节集 | | |
当前位置 | 整数型 | | |
方向数 | 整数型 | | |
图片数量 | 整数型 | | |
总宽度 | 整数型 | | |
总高度 | 整数型 | | |
关键点X | 整数型 | | |
关键点Y | 整数型 | | |
文件号 =
打开文件 (文件路径,
#读入, )字节集数据 =
读入字节集 (文件号, 16
)关闭文件 (文件号
)
如果真 (取字节集左边 (字节集数据, 2
) ≠
{ 0x53, 0x50
})
信息框 ("不是有效的SP文件", 0, ,
)
返回 ()
当前位置 = 3 文件头长度 =
取字节集数据 (取字节集中间 (字节集数据, 当前位置, 2
),
#短整数型, )当前位置 = 当前位置 + 2
方向数 =
取字节集数据 (取字节集中间 (字节集数据, 当前位置, 2
),
#短整数型, )当前位置 = 当前位置 + 2
图片数量 =
取字节集数据 (取字节集中间 (字节集数据, 当前位置, 2
),
#短整数型, )当前位置 = 当前位置 + 2
总宽度 =
进制_十六到十 (取十六进制文本 (字节集数据
[当前位置
])) × 16 +
进制_十六到十 (取十六进制文本 (字节集数据
[当前位置 + 1
]))
当前位置 = 当前位置 + 2
总高度 =
进制_十六到十 (取十六进制文本 (字节集数据
[当前位置
])) × 16 +
进制_十六到十 (取十六进制文本 (字节集数据
[当前位置 + 1
]))
当前位置 = 当前位置 + 2
关键点X =
取字节集数据 (取字节集中间 (字节集数据, 当前位置, 2
),
#短整数型, )当前位置 = 当前位置 + 2
关键点Y =
取字节集数据 (取字节集中间 (字节集数据, 当前位置, 2
),
#短整数型, ) 调试输出 ("方向数:" +
到文本 (方向数
))
调试输出 ("图片数量:" +
到文本 (图片数量
))
调试输出 ("总宽度:" +
到文本 (总宽度
))
调试输出 ("总高度:" +
到文本 (总高度
))
调试输出 ("关键点X:" +
到文本 (关键点X
))
调试输出 ("关键点Y:" +
到文本 (关键点Y
))
扩展建议
如果真 (方向数 > 1
)

每帧大小 = 总宽度 × 总高度 × 3

文件大小 =
取文件尺寸 (文件路径
)
总帧数 =
(文件大小 - 文件头长度
) / 每帧大小

字节集数据 =
读入字节集 (文件号, 文件头长度 - 16
)调色板 =
取字节集中间 (字节集数据, 1, 256×3
)
作者: 奔放的牛 时间: 2025-5-13 23:50
行不通,读入文件没反应
欢迎光临 精易论坛 (https://125.confly.eu.org/) |
Powered by Discuz! X3.4 |