skip to Main Content

I am working on a short script which should slice a tiff file in smaller pieces.

The files are bigger as typical (the biggest file has 16000 x 28800 pixels 1 bit depth)
Image with patches

My idea is, to crop each of this rectangles and save this as a new file, with the same resolution as the original image


     from PIL import Image

     Image.MAX_IMAGE_PIXELS = None
     rows = 9
     cols = 5

     im = Image.open("Patches_TP_2540.tif")
     width, heigth = im.size
     res = 2540

     print(width, heigth)

     patchSize = int(width / cols)

     offset_x_tl = 0
     offset_y_tl = 0
     for r in range(rows):
        offset_y_tl = r * patchSize
        for c in range(cols):
           print(r, c)
           offset_x_tl = c * patchSize
           offset_y_br = offset_y_tl + patchSize
           offset_x_br = offset_x_tl + patchSize
           print(offset_x_tl, offset_y_tl, offset_x_br, offset_y_br)

           croped_area = im.crop((offset_x_tl, offset_y_tl, offset_x_br, offset_y_br))
           croped_area.save("Patch_"+ str(res) +"_" + str(r) + "_" + str(c) +".tiff", dpi=(2540,2540)) 
  


    print("Done!")

If I run this code it ends without printing Done! If I remove croped_area and the save command, the code is running fine. Creating a new Image and save it workds also.

I also tryed using a temp image with im.copy(). If I doing this, the code stops at the copy process.

Maybe someone can help me with this issue and has some tricks how to solve the problem.

Thanks for reading,
Timo

Tiff Exiff Info as requested from Mark Setchell

ExiffTool Output
ExifTool Version Number         : 12.36
File Name                       : Patches_TP_2540.tif
Directory                       : .
File Size                       : 1967 KiB
File Modification Date/Time     : 2021:11:23 22:04:59+01:00
File Access Date/Time           : 2021:11:24 16:38:45+01:00
File Creation Date/Time         : 2021:11:23 22:04:58+01:00
File Permissions                : -rw-rw-rw-
File Type                       : TIFF
File Type Extension             : tif
MIME Type                       : image/tiff
Exif Byte Order                 : Little-endian (Intel, II)
Subfile Type                    : Full-resolution image
Image Width                     : 8000
Image Height                    : 14400
Bits Per Sample                 : 1
Compression                     : LZW
Photometric Interpretation      : WhiteIsZero
Strip Offsets                   : (Binary data 407 bytes, use -b option to extract)
Orientation                     : Horizontal (normal)
Samples Per Pixel               : 1
Rows Per Strip                  : 262
Strip Byte Counts               : (Binary data 329 bytes, use -b option to extract)
X Resolution                    : 2540
Y Resolution                    : 2540
Resolution Unit                 : inches
Software                        : Adobe Photoshop CS2 Windows
Modify Date                     : 2021:11:23 22:04:58
XMP Toolkit                     : 3.1.1-111
Format                          : image/tiff
Creator Tool                    : Adobe Photoshop CS2 Windows
Create Date                     : 2021:11:23 22:04:34+01:00
Metadata Date                   : 2021:11:23 22:04:58+01:00
Document ID                     : uuid:2A661B24A04CEC1180E9F8C3BA2D9028
Instance ID                     : uuid:2B661B24A04CEC1180E9F8C3BA2D9028
Native Digest                   : 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;5F3D788B45930CC20D5D52E96A1450A4
Color Mode                      : Bitmap
History                         :
IPTC Digest                     : 00000000000000000000000000000000
Displayed Units X               : inches
Displayed Units Y               : inches
Print Style                     : Centered
Print Position                  : 0 0
Print Scale                     : 1
Global Angle                    : 120
Global Altitude                 : 30
Copyright Flag                  : False
URL List                        :
Slices Group Name               : Patches
Num Slices                      : 1
Pixel Aspect Ratio              : 1
Photoshop Thumbnail             : (Binary data 10944 bytes, use -b option to extract)
Has Real Merged Data            : Yes
Writer Name                     : Adobe Photoshop
Reader Name                     : Adobe Photoshop CS2
Color Space                     : Uncalibrated
Exif Image Width                : 8000
Exif Image Height               : 14400
Image Size                      : 8000x14400
Megapixels                      : 115.2

Pillow Setup as requested from Mark Setchell

Pillow 8.2.0
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)]
--------------------------------------------------------------------
Python modules loaded from C:UserstimoAnaconda3envstensorflowlibsite-packagesPIL
Binary modules loaded from C:UserstimoAnaconda3envstensorflowlibsite-packagesPIL
--------------------------------------------------------------------
--- PIL CORE support ok, compiled for 8.2.0
--- TKINTER support ok, loaded 8.6
--- FREETYPE2 support ok, loaded 2.10.4
*** LITTLECMS2 support not installed
*** WEBP support not installed
*** WEBP Transparency support not installed
*** WEBPMUX support not installed
*** WEBP Animation support not installed
--- JPEG support ok, compiled for 9.0
*** OPENJPEG (JPEG2000) support not installed
--- ZLIB (PNG/ZIP) support ok, loaded 1.2.11
--- LIBTIFF support ok, loaded 4.2.0
*** RAQM (Bidirectional Text) support not installed
*** LIBIMAGEQUANT (Quantization method) support not installed
*** XCB (X protocol) support not installed
--------------------------------------------------------------------
BLP
Extensions: .blp
Features: open
--------------------------------------------------------------------
BMP image/bmp
Extensions: .bmp
Features: open, save
--------------------------------------------------------------------
BUFR
Extensions: .bufr
Features: open, save
--------------------------------------------------------------------
CUR
Extensions: .cur
Features: open
--------------------------------------------------------------------
DCX
Extensions: .dcx
Features: open
--------------------------------------------------------------------
DDS
Extensions: .dds
Features: open
--------------------------------------------------------------------
DIB image/bmp
Extensions: .dib
Features: open, save
--------------------------------------------------------------------
EPS application/postscript
Extensions: .eps, .ps
Features: open, save
--------------------------------------------------------------------
FITS
Extensions: .fit, .fits
Features: open, save
--------------------------------------------------------------------
FLI
Extensions: .flc, .fli
Features: open
--------------------------------------------------------------------
FPX
Extensions: .fpx
Features: open
--------------------------------------------------------------------
FTEX
Extensions: .ftc, .ftu
Features: open
--------------------------------------------------------------------
GBR
Extensions: .gbr
Features: open
--------------------------------------------------------------------
GIF image/gif
Extensions: .gif
Features: open, save, save_all
--------------------------------------------------------------------
GRIB
Extensions: .grib
Features: open, save
--------------------------------------------------------------------
HDF5
Extensions: .h5, .hdf
Features: open, save
--------------------------------------------------------------------
ICNS
Extensions: .icns
Features: open
--------------------------------------------------------------------
ICO image/x-icon
Extensions: .ico
Features: open, save
--------------------------------------------------------------------
IM
Extensions: .im
Features: open, save
--------------------------------------------------------------------
IMT
Features: open
--------------------------------------------------------------------
IPTC
Extensions: .iim
Features: open
--------------------------------------------------------------------
JPEG image/jpeg
Extensions: .jfif, .jpe, .jpeg, .jpg
Features: open, save
--------------------------------------------------------------------
JPEG2000 image/jp2
Extensions: .j2c, .j2k, .jp2, .jpc, .jpf, .jpx
Features: open, save
--------------------------------------------------------------------
MCIDAS
Features: open
--------------------------------------------------------------------
MIC
Extensions: .mic
Features: open
--------------------------------------------------------------------
MPEG video/mpeg
Extensions: .mpeg, .mpg
Features: open
--------------------------------------------------------------------
MSP
Extensions: .msp
Features: open, save, decode
--------------------------------------------------------------------
PCD
Extensions: .pcd
Features: open
--------------------------------------------------------------------
PCX image/x-pcx
Extensions: .pcx
Features: open, save
--------------------------------------------------------------------
PIXAR
Extensions: .pxr
Features: open
--------------------------------------------------------------------
PNG image/png
Extensions: .apng, .png
Features: open, save, save_all
--------------------------------------------------------------------
PPM image/x-portable-anymap
Extensions: .pbm, .pgm, .pnm, .ppm
Features: open, save
--------------------------------------------------------------------
PSD image/vnd.adobe.photoshop
Extensions: .psd
Features: open
--------------------------------------------------------------------
SGI image/sgi
Extensions: .bw, .rgb, .rgba, .sgi
Features: open, save
--------------------------------------------------------------------
SPIDER
Features: open, save
--------------------------------------------------------------------
SUN
Extensions: .ras
Features: open
--------------------------------------------------------------------
TGA image/x-tga
Extensions: .icb, .tga, .vda, .vst
Features: open, save
--------------------------------------------------------------------
TIFF image/tiff
Extensions: .tif, .tiff
Features: open, save, save_all
--------------------------------------------------------------------
WEBP
Features: open
--------------------------------------------------------------------
WMF
Extensions: .emf, .wmf
Features: open, save
--------------------------------------------------------------------
XBM image/xbm
Extensions: .xbm
Features: open, save
--------------------------------------------------------------------
XPM image/xpm
Extensions: .xpm
Features: open
--------------------------------------------------------------------
XVTHUMB
Features: open
--------------------------------------------------------------------

2

Answers


  1. Chosen as BEST ANSWER

    It seams PIL and crop has some problems with LZW compression. Removing the compression with Photoshop makes the script running like expected.


  2. If you have idea of bouding box area can use this approach to crop image

    from PIL import Image
    img = Image.open("imagefile")
    

    #Bounding area for eg

    #left = 90, top = 580, right = 1600, bottom = 2000

    img_res = img.crop((left, top, right, bottom))
    with open(outfile4, 'w') as f:
        img_res.save(outfile_path,'JPEG')
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search