On 9 13 , 7 44 , [EMAIL PROTECTED] wrote: > On 13 Wrz, 10:48, Pacino <[EMAIL PROTECTED]> wrote: > > > > > On 9 13 , 4 43 , Laurent Pointal <[EMAIL PROTECTED]> wrote: > > > > Pacino a écrit : > > > > > Hi, everyone, > > > > > I am wondering whether it's possible to read part (e.g. 1000*1000) of > > > > a huge jpeg file (e.g. 30000*30000) and save it to another jpeg file > > > > by pure python. I failed to read the whole file and split it, because > > > > it would cost 2GB memory. > > > > > Can anyone help me? Any comments would be appreciated. > > > > Just reading parts of the *file* is easy (see tell() seek() and read() > > > methods on files). > > > But to extract a part of the *picture*, you must uncompress the picture > > > in memory, grab the sub-picture, and save it back - generally with > > > compression. I can't see how you can bypass the uncompress/compress > > > phases and the corresponding memory use. > > > The most difficult part is the uncompress part. I don't want the whole > > picture to be uncompressed in the memory, because it will consume a > > lot of memory (2GB, as I mentioned). My goal is to uncompress part of > > the picture into the memory. > > > I just read some article on this subject (http://mail.python.org/ > > pipermail/image-sig/1999-April/000713.html) , but haven't test it out > > yet. > > I have no idea what it does. Anyway - jpeg: > 1. RGB -> HLV > 2. divide data into 8x8 - blocks of data. > 3. blocks are treated with discrete cosine transform. > 4. Result is filtered to remove "fast changes". > 5. Then result is compressed with Huffman alg. > > So to get part of image - you can take smaller image before step 4. > As far as I understand code presented > at:http://mail.python.org/pipermail/image-sig/1999-April/000713.html > - full image will be loaded, and cutted. > > -- > Regards, > Micha³ Zaborowski (TeXXaS)- - > > - -
Thanks. Seems no ways to achieve the requirements.
-- http://mail.python.org/mailman/listinfo/python-list