我正在尝试解码并显示根据PDS标准编码的行星图像的特定图像格式。我正在使用Pillow,我需要实现一个位解码器,但经过各种尝试,我没有很好的结果。谁能帮我实现这个特殊的Pillow解码器?我会在需要时提供更多信息
当然,我将提供我想要使用的PDS文件的编码信息。这些是文件标题中的重要行:
POINTERS TO DATA OBJECTS
BROWSE_IMAGE= = 20480 <BYTES>
IMAGE = 53248 <BYTES>
OBJECT DESCRIPTION
OBJECT = IMAGE
FIRST_LINE = 1
LINE_PREFIX_BYTES = 0
LINE_SUFFIX_BYTES = 0
LINES = 1024
LINE_SAMPLES = 1024
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
SAMPLE_BIT_MASK = "2#0000001111111111#"
END_OBJECT = IMAGE
这是否足够清楚?这是定义图像编码方法的标题的一部分。整个文件包含标题和图像本身。我显然需要一个枕头解码器,而且恰好有点解码器,但我的不起作用。
这将是我的位解码器代码:
from PIL import Image, ImageFile
class DarkImageFile( ImageFile.ImageFile ) :
format = 'IMG'
format_description = 'IMG dark frame'
def _open( self ) :
self.size = (1024,1024)
self.mode = 'F' # data representation mode
self.tile = [ ("bit", ( 0,0 ) + self.size, 53248, (10,6, 0, 3) ) ]
Image.register_open( "IMG", DarkImageFile )
Image.register_extension( "IMG", ".img" )