1

こんにちは私はルビーで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
4

1 に答える 1

0

QPainter.drawPointブラシではなく、現在のペンを使用します。painter.setPen各ポイントの前に電話してください。

ただし、ピクセルをに格納する方がはるかに優れていQImageます。QtはすでにBMPファイルの読み取りをサポートしているため、正当な理由がない限り、自分で実装する必要はありません。

于 2013-02-22T14:21:55.343 に答える