我正试图获得Salph 2.7 PIL图书馆,以便与JPEG图像合作,这些图像只能作为来自HDD形象的溪流提供,而且不完整。
我提出了以下选择:
ImageFile.LOAD_TRUNCATED_IMAGES = True
而且,只要有数据,就装上上游(或者说得更好:只要我100%确信这一数据仍是一个形象,而不是其他一些档案类型)。 我测试了不同的东西,只要我能够知道(对于JPEGs来说),PIL只有在发现<0xFFDA<<>> /code>(斯堪的Marker)。 这是我如何装载数据的一个简短例子:
from PIL import Image
from StringIO import StringIO
ImageFile.LOAD_TRUNCATED_IMAGES = True
with open("/path/to/image.raw", rb ) as fp:
fp.seek("""jump to position in image where JPEG starts""")
data = fp.read("""number of bytes I know that those belong to that jpeg""")
img = Image.open(StringIO(data)) # This would throw exception if the data does
# not contain the 0xffda marker
pixel = img.load() # Would throw exception if LOAD_TRUNCATED_IMAGES = false
height,width = img.size
for i in range(height):
for j in range(width):
print pixel[i,j]
在最后一行,我(或希望)至少看到将显示的六氯苯数据。 但是,每张钢板都填好<代码>(0,0),。
www.un.org/Depts/DGACM/index_spanish.htm 问题: 我在这里试图做的是怎么办?
大约几周前,我用一个形象档案尝试了同样的问题,我只用一个编辑从中删除数据。 它为现有的六氯数据做了工作。 一旦达到我截断的一张颜料,该方案就提出一个例外(我今天将再次试图确保我不会忘记错误)。
If somebody is wondering why I am doing this: I need to make sure that the image/picture inside that hdd image is in consecutive blocks/clusters and is not fragmented. To make sure of this I wanted to use pixel matching.
EDIT: I have tried it again and this is what I have seen.
我打开了全球疫苗和免疫机能保值的缩略图像,在上半部分向我展示了几条六线,但消费物价指数至少不能给我以这些餐具的欧洲法郎价值。 它总是返回(0,0)。
我将图像稍加大,这样,图像的4/5下级面目看不见,但这足以让消费物价指数向我展示可资利用的欧洲-联合国达尔富尔混合行动价值观。 其它一切是(0,0,0)。
我仍然无法确定临时自治机构是否能够向我表明欧洲-欧洲合作组织的价值,即使只有看齐数据。