首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >qtruby逐点绘制图片

qtruby逐点绘制图片
EN

Stack Overflow用户
提问于 2013-02-22 20:07:33
回答 1查看 199关注 0票数 1

嗨,我正在尝试用ruby编写BMP阅读器,但现在我被困在屏幕上了。我将图片存储在像素阵列中,并在每个像素上存储rgb颜色。但是在window中什么都没有发生?我哪里做错了?或者有没有什么qt对象可以让我存储像素数据并简单地绘制它?

代码语言:javascript
复制
def initialize
    super

    setWindowTitle "Transparent rectangles"

    resize 590, 90
    move 300, 300

    show
end

def paintEvent event

      painter = Qt::Painter.new self
      bmp = BMP::Reader.new("picture.bmp")
      drawPicture(painter,bmp.getPixels())
      painter.end
end


def drawPicture(painter, pixels)

    painter.setPen Qt::NoPen
      0.upto(pixels.length-1) do |i|
        0.upto(pixels[0].length-1) do |j|
          painter.setBrush Qt::Brush.new Qt::Color.new pixels[i][j][2], pixels[i][j][1], pixels[i][j][0], 255
          painter.drawPoint(i,j)
        end
      end
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-22 22:21:55

QPainter.drawPoint使用当前钢笔,而不是画笔。在每个点之前调用painter.setPen

但最好将像素存储在QImage中。Qt已经支持读取BMP文件,所以没有必要自己实现它,除非你有很好的理由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15023898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档