0

我正在尝试在 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])
4

0 回答 0