pyqt で tga を読み取る必要がありますが、これまでのところ、tga のピクセルあたりのバイト数が 3 または 4 ではなく 2 バイトである場合を除いて、これは正常に機能しているようです。
具体的には、このセクション:
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()
pixel[0] と pixel[1] の値を入力して、正しい形式と色空間で値を取得するにはどうすればよいですか?
考え、アイデア、または助けてください!!!