找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 517|回复: 4

在vb上画彩色渐近过度的彩色块

[复制链接]
发表于 2026-6-9 13:05:27 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
本帖最后由 imperialeast 于 2026-6-13 06:37 编辑

最近写了一个vb专用的彩色条,dll,
Private Sub Command1_Click()
Dim VV As COLORBARINFO
Me.Cls
With VV
     .IsHorizontal = True
     .Colors = Array(vbRed, vbYellow, vbBlue, &H80FF&, vbGreen, &HFF00FF, &HFFFF00)
     .Height = 200
     .Width = 200
End With
DrawColorBar Me, VV
End Sub

Private Sub Command2_Click()
Dim VV As COLORBARINFO
Picture1.Cls
With VV
     .IsHorizontal = True
     .Colors = Array(vbRed, vbYellow)
     .Height = 200
     .Width = 200
End With
DrawColorBar Picture1, VV
End Sub



比较小实现绘图如下效果
屏幕截图 2026-06-13 063123.png

实例.rar

6.28 KB, 下载次数: 4

回复

使用道具 举报

发表于 2026-6-10 10:15:32 | 显示全部楼层
我来提一个思路:用StretchDIBits直接把一维的颜色数组当作 宽度=数组长度 高度=1 的图像数据传给StretchDIBits,直接拉伸成目标尺寸(注意要先用SetStretchBltMode开启HALFTONE的双线性插值模式)。
回复 赞! 靠!

使用道具 举报

发表于 2026-6-10 18:17:56 | 显示全部楼层
本帖最后由 tlwh163 于 2026-6-10 18:19 编辑
YY菌 发表于 2026-6-10 10:15
我来提一个思路:用StretchDIBits直接把一维的颜色数组当作 宽度=数组长度 高度=1 的图像数据传给StretchDI ...


大佬思维! 那是不是我可以在指定颜色的时候 就画好一个 比如100像素高的 备用图 然后就是bitblt
回复 赞! 靠!

使用道具 举报

发表于 2026-6-11 16:03:18 | 显示全部楼层
tlwh163 发表于 2026-6-10 18:17
大佬思维! 那是不是我可以在指定颜色的时候 就画好一个 比如100像素高的 备用图 然后就是bitblt
...

但是需要考虑用户参数是动态传入的嘛
回复 赞! 靠!

使用道具 举报

发表于 2026-7-4 01:42:45 | 显示全部楼层
铼点颜色渐变与色彩空间研究【
sRGB上混色其实问题巨大【至少先把rgb转成线性,g a m m a 校 正,都会好很多
更深的话,最新科技参见oklab等各种(声称自己比较感知均匀的)色彩空间以及渐变方法【
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2026-7-14 05:43 , Processed in 0.023592 second(s), 9 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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