Python で .jpeg 画像用のファイル カーバーを作成しようとしていますが、残念ながら思ったよりもずっと難しいと感じています。
私が知る限り、私が直面している問題は、サムネイルの画像内の複数の SOI および EOI マーカーが原因です。
サムネイルと実際の画像を分離する方法が必要ですが、EOI が単に FFD9 であることを考えると、それは非常に難しいと思います。
私のコード:
with open(r'\\.\X:', 'rb') as f:
startfile = 0
size = 0
start = '\xFF\xD8\xFF\xE0'
end = '\xFF\xD9'
chunksize = 512
chunk = f.read(chunksize)
while chunk:
s = chunk.find(start)
e = chunk.find(end)
if s >= 0: startfile = f.tell() - chunksize + s
if e >= 0: size = f.tell() - chunksize + e + 2
if startfile and size:
eof = size-startfile
images.append((startfile, eof))
startfile = size = 0
chunk = f.read(chunksize)
for pos, item in enumerate(images):
with open(str(pos)+'.jpg', 'wb') as o:
f.seek(item[0])
o.write(f.read(item[1])