我在图片框上使用 Point(x,y) 来获取像素的颜色。但返回的内容与 x 和 y 指向的内容无关

问题描述 投票:0回答:1

我正在将木图片与纯色相匹配。检查图片的 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。

vb6 point
1个回答
0
投票

总而言之,只有 .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
© www.soinside.com 2019 - 2024. All rights reserved.