【问题标题】:qtruby draw picture point by pointqtruby逐点绘制图片
【发布时间】:2013-02-22 12:07:33
【问题描述】:

您好,我正在尝试用 ruby​​ 编写 BMP 阅读器编写器,但现在卡在屏幕上。 我将图片存储在像素数组中,并且每个像素都存储 rgb 颜色。 但是在窗口中什么都没有发生?我做错了什么?或者是否有任何 qt 对象可以存储像素数据并简单地绘制它?

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

【问题讨论】:

    标签: ruby qt pixel image qtruby


    【解决方案1】:

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

    但最好将像素存储在QImage 中。 Qt 已经支持读取 BMP 文件,因此除非您有充分的理由,否则无需自己实现。

    【讨论】:

    • 啊,这是工作谢谢 :) 关于 QImage 是真的,但我想写读者。这是我正在做的主要部分。现在我正在尝试在 Qt::Picture 中绘制它。有没有办法用我的数据或其他对象填充 QImage?或者一些简单的操作类来旋转 Qt::Picture?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 2014-08-03
    • 2020-01-11
    相关资源
    最近更新 更多