调用DLL画板绘图与API绘图对比

易语言 2020-08-29 18:24:21

调用DLL画板绘图与API绘图对比

使用到易语言特殊功能支持库。

易语言画板绘图与API绘图对比源码结合易语言应用接口支持库,通过调用DLL文件实现了2种不同的方法绘制动态线效果。

.如果真 (播放句柄 ≠ 0)
取ftt数据 = BASS_ChannelGetData (播放句柄, fft数据_数组, #BASS_DATA_FFT256)
.如果真 (取ftt数据 ≠ -1)
.判断循环首 (i < 256)
数据2_数组 [i] = fft数据_数组 [i]
.如果 ((数据2_数组 [i] + 数据2_数组 [i] × (200 - i) × 0.25) × 80 > 数据1_数组 [i])
数据1_数组 [i] = (数据2_数组 [i] + 数据2_数组 [i] × (200 - i) × 0.25) × 80

.否则
.如果 (数据1_数组 [i] > 2)
数据1_数组 [i] = 数据1_数组 [i] - 2
.否则
数据1_数组 [i] = 数据1_数组 [i]
.如果结束

.如果结束
.如果真 (数据1_数组 [i] > 频谱高度)
数据1_数组 [i] = 频谱高度
.如果真结束
Y = 0
.如果 (i % (频谱密度 + 1) = 0)
.计次循环首 (频谱密度 + 1, j)
Y = Y + 数据1_数组 [i - j + 1]
.计次循环尾 ()
Y = Y ÷ (频谱密度 + 1)
RGB = 取颜色值 (R1 × Y ÷ 频谱高度 + R2 × (频谱高度 - Y) ÷ 频谱高度, G1 × Y ÷ 频谱高度 + G2 × (频谱高度 - Y) ÷ 频谱高度, B1 × Y ÷ 频谱高度 + B2 × (频谱高度 - Y) ÷ 频谱高度)
画渐变矩形_API (取设备场景_临时, i - 1 - 频谱密度, 频谱高度 - Y, i - 1, 频谱高度, RGB, 频谱渐变色下, 假)
.如果 (数据3_数组 [i] < Y)
数据3_数组 [i] = Y
.否则
.如果 (数据3_数组 [i] > 1)
数据3_数组 [i] = 数据3_数组 [i] - 1
.否则
数据3_数组 [i] = 1
.如果结束

.如果结束
Rectangle (取设备场景_临时, i - 1 - 频谱密度, 频谱高度 - 数据3_数组 [i] - 1, i - 1, 频谱高度 - 数据3_数组 [i])
.否则

.如果结束
i = i + 1
.判断循环尾 ()
.如果真结束

.如果真结束
BitBlt (取设备场景, 0, 0, 频谱宽度, 频谱高度, 取设备场景_临时, 0, 0, #SRCCOPY) ' 复制设备位图
ReleaseDC (取窗口句柄 (), 取设备场景) ' 删除用 GetDC 取得的场景
DeleteDC (取设备场景_临时) ' 删除用 CreateCompatibleDC 创建的场景
DeleteObject (hbmp) ' 删除设备位图
DeleteObject (画笔) ' 删除画笔
DeleteObject (刷子) ' 删除刷子