これは、tgaのpyqtを読む必要があります。これまでのところ、tgaのピクセル数が3または4ではなく2バイトである場合を除き、これはうまくいきます。http://pastebin.com/b5Vz61dZ 。2ビット/ピクセルqRgb
特にこのセクション:
def getPixel(file, bytesPerPixel):
'Given the file object f, and number of bytes per pixel, read in the next pixel and return a qRgba uint'
pixel = []
for i in range(bytesPerPixel):
pixel.append(ord(file.read(1)))
if bytesPerPixel==4:
pixel = [pixel[2], pixel[1], pixel[0], pixel[3]]
color = qRgba(*pixel)
elif bytesPerPixel == 3:
pixel = [pixel[2], pixel[1], pixel[0]]
color = qRgb(*pixel)
elif bytesPerPixel == 2:
# if greyscale
color = QColor.fromHsv(0, pixel[0] , pixel[1])
color = color.value()
return color
この部分:
elif bytesPerPixel == 2:
# if greyscale
color = QColor.fromHsv(0, pixel[0] , pixel[1])
color = color.value()
方法希望I入力画素[0]と画素[1]に正しい形式で値を取得作成する値をとcolorspace?
どのような考え、アイデアや助けてください!
感謝のためではなく、[0] = 148と、画素[1] = 82 赤、graan青のチャンネルが異なるだろうことを意味1点画素で、このコードでいただき、ありがとうございます画像がグレースケールであっても、 また、このような悩みはありますが、あなたの構文はうまくいかないようです。私はPython 2.6を使用しています、あなたはそれ以降のバージョンを使用していますか、それはちょうど注釈ですか? – Jared
@mushu。ああそれがグレースケールの画像であることに気付かなかった。グレーレベルの8ビット+アルファの8ビットですか?もしそうなら、http://stackoverflow.com/q/835753/851055 – istepura
に記載されているように、灰色のピクセル[1]をrgbに変換することができます。最初の投稿には 'pixel = [pixel [1]、pixel [1]、pixel [1]]' 'color = qRgb(* pixel)' と書いてみましたが、輝度は正しくありません。うまくいった。ルミナンスを補正する方法はありますか? – Jared