我正在将木图片与纯色相匹配。检查图片的 50x50 部分并得出平均的红色、绿色和蓝色等效值应该很简单。但是
point(x,y)
似乎返回了一个不匹配的常量。步骤是:
picimage.Picture = LoadPicture(filename)
StretchBlt woodpic.hdc, 0, 0, woodpic.ScaleWidth, woodpic.ScaleHeight, _
picimage.hdc, 0, 0, picimage.ScaleWidth, ScaleHeight, vbSRCCOPY
woodpic.Refresh
For X = 1 To 50
For Y = 1 To 50
value = woodpic.Point(X, Y)
DisectColor value, Redv, Greenv, Bluev
Next Y
Next X
我的桤木颜色版本是9812440,但是
Point
只返回15790320。
总而言之,只有 .bmp 文件可以如此询问。所以,最终的解决方案是:
woodpic.Picture = LoadPicture(filename)
For X = 1 To 25 ' the sample must be at least this big
For Y = 1 To 25
SampleValue = woodpic.Point(X, Y) 'get sample
Sample = triad(SampleValue)
woodpic.PSet (X, Y), 255 'paint to leave evidence behind
cnt = cnt + 1
averagecolor = average(Sample) 'recompute average
UpdateScreen
Next Y
Next X