Ruby 我一点一点地画

Ruby 我一点一点地画,ruby,qt,pixel,image,qtruby,Ruby,Qt,Pixel,Image,Qtruby,嗨,我正在尝试用ruby编写BMP reader writer,现在我被困在了屏幕上。 我的图片存储在像素阵列中,每个像素上都存储rgb颜色。 但窗户里什么也没发生?我做错了什么?或者是否有任何qt对象可以存储像素数据并简单地绘制它 def initialize super setWindowTitle "Transparent rectangles" resize 590, 90 move 300, 300 show end def paintE

嗨,我正在尝试用ruby编写BMP reader writer,现在我被困在了屏幕上。 我的图片存储在像素阵列中,每个像素上都存储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

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

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

Ahh,这是工作,谢谢:)关于QImage是真的,但我想编写reader。这是我正在做的主要部分。现在我正试图在Qt::Picture中绘制这个。有没有办法用我的数据或其他对象填充QImage?或者一些简单的操作类来旋转Qt::Picture?