Skip to content

ValueError: box can't exceed original image size in a "CR2 Photo" #6185

Description

@imfantuan

Systems

OS: CentOS 8 Stream
Pillow: 9.1.0

Steps:

  1. Download a "CR2 Photo":
    wget https://images.unsplash.com/photo-1648965919745-4ef7713eeb57

  2. Add some code:

import os, sys
from PIL import Image

size = (128, 128)

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            with Image.open(infile) as im:
                im.thumbnail(size)
                im.save(outfile, "JPEG")
        except OSError:
            print("cannot create thumbnail for", infile)
  1. Run python3 test_old_jpeg.py ./photo-1648965919745-4ef7713eeb57

  2. Get some err infomations:

Traceback (most recent call last):
  File "test_old_jpeg.py", line 11, in <module>
    im.thumbnail(size)
  File "/usr/local/python3/lib/python3.8/site-packages/PIL/Image.py", line 2476, in thumbnail
    im = self.resize(size, resample, box=box, reducing_gap=reducing_gap)
  File "/usr/local/python3/lib/python3.8/site-packages/PIL/Image.py", line 2063, in resize
    return self._new(self.im.resize(size, resample, box))
ValueError: box can't exceed original image size

Exif

[{
  "SourceFile": "photo-1648965919745-4ef7713eeb57",
  "ExifTool": {
    "ExifToolVersion": 11.99
  },
  "System": {
    "FileName": "photo-1648965919745-4ef7713eeb57",
    "Directory": ".",
    "FileSize": "23 MB",
    "FileModifyDate": "2022:04:03 14:05:21+08:00",
    "FileAccessDate": "2022:04:05 06:23:59+08:00",
    "FileInodeChangeDate": "2022:04:05 06:23:42+08:00",
    "FilePermissions": "rw-r--r--"
  },
  "File": {
    "FileType": "CR2",
    "FileTypeExtension": "cr2",
    "MIMEType": "image/x-canon-cr2",
    "ExifByteOrder": "Little-endian (Intel, II)"
  },
  "IFD0": {
    "ImageWidth": 5760,
    "ImageHeight": 3840,
    "BitsPerSample": "8 8 8",
    "Compression": "JPEG (old-style)",
    "Make": "Canon",
    "Model": "Canon EOS 5D Mark III",
    "PreviewImageStart": 89824,
    "Orientation": "Rotate 270 CW",
    "PreviewImageLength": 1088740,
    "XResolution": 72,
    "YResolution": 72,
    "ResolutionUnit": "inches",
    "ModifyDate": "2019:09:08 03:28:14",
    "Artist": "",
    "Copyright": "",
    "PreviewImage": "(Binary data 1088740 bytes, use -b option to extract)"
  },
  "XMP-xmp": {
    "Rating": 0
  },
  "ExifIFD": {
    "ExposureTime": "1/250",
    "FNumber": 2.8,
    "ExposureProgram": "Manual",
    "ISO": 800,
    "SensitivityType": "Recommended Exposure Index",
    "RecommendedExposureIndex": 800,
    "ExifVersion": "0230",
    "DateTimeOriginal": "2019:09:08 03:28:14",
    "CreateDate": "2019:09:08 03:28:14",
    "ComponentsConfiguration": "Y, Cb, Cr, -",
    "ShutterSpeedValue": "1/256",
    "ApertureValue": 2.8,
    "ExposureCompensation": 0,
    "MeteringMode": "Multi-segment",
    "Flash": "Off, Did not fire",
    "FocalLength": "35.0 mm",
    "UserComment": "",
    "SubSecTime": "00",
    "SubSecTimeOriginal": "00",
    "SubSecTimeDigitized": "00",
    "FlashpixVersion": "0100",
    "ColorSpace": "sRGB",
    "ExifImageWidth": 5760,
    "ExifImageHeight": 3840,
    "FocalPlaneXResolution": 3942.505133,
    "FocalPlaneYResolution": 3950.617284,
    "FocalPlaneResolutionUnit": "inches",
    "CustomRendered": "Normal",
    "ExposureMode": "Manual",
    "WhiteBalance": "Auto",
    "SceneCaptureType": "Standard",
    "OwnerName": "",
    "SerialNumber": "082024021110",
    "LensInfo": "16-35mm f/0",
    "LensModel": "EF16-35mm f/2.8L II USM",
    "LensSerialNumber": "000082e19a"
  },
  "Canon": {
    "MacroMode": "Normal",
    "SelfTimer": "Off",
    "Quality": "RAW",
    "CanonFlashMode": "Off",
    "ContinuousDrive": "Single",
    "FocusMode": "One-shot AF",
    "RecordMode": "CR2",
    "CanonImageSize": "n/a",
    "EasyMode": "Manual",
    "DigitalZoom": "None",
    "Contrast": "Normal",
    "Saturation": "Normal",
    "MeteringMode": "Evaluative",
    "FocusRange": "Not Known",
    "CanonExposureMode": "Manual",
    "LensType": "Canon EF 16-35mm f/2.8L II USM",
    "MaxFocalLength": "35 mm",
    "MinFocalLength": "16 mm",
    "FocalUnits": "1/mm",
    "MaxAperture": 2.8,
    "MinAperture": 23,
    "FlashActivity": 0,
    "FlashBits": "(none)",
    "ZoomSourceWidth": 0,
    "ZoomTargetWidth": 0,
    "ManualFlashOutput": "n/a",
    "ColorTone": "Normal",
    "SRAWQuality": "n/a",
    "FocalLength": "35 mm",
    "FocalPlaneXUnknown": 53893,
    "FocalPlaneYUnknown": 12236,
    "CanonFlashInfo": "0 0 0 0",
    "AutoISO": 100,
    "BaseISO": 800,
    "MeasuredEV": 6.50,
    "TargetAperture": 2.8,
    "TargetExposureTime": "1/256",
    "ExposureCompensation": 0,
    "WhiteBalance": "Auto",
    "SlowShutter": "None",
    "SequenceNumber": 0,
    "OpticalZoomCode": "n/a",
    "CameraTemperature": "27 C",
    "FlashGuideNumber": 0,
    "FlashExposureComp": 0,
    "AutoExposureBracketing": "Off",
    "AEBBracketValue": 0,
    "ControlMode": "Camera Local Control",
    "FNumber": 2.8,
    "ExposureTime": "1/256",
    "MeasuredEV2": 5,
    "BulbDuration": 0,
    "CameraType": "EOS High-end",
    "NDFilter": "n/a",
    "CanonImageType": "Canon EOS 5D Mark III",
    "CanonFirmwareVersion": "Firmware Version 1.3.3",
    "OwnerName": "",
    "ISO": 800,
    "CameraOrientation": "Rotate 270 CW",
    "LensSerialNumber": "000082e19a",
    "FirmwareVersion": "1.3.3",
    "FileIndex": 8428,
    "FileIndex2": 8207,
    "DirectoryIndex": 100,
    "DirectoryIndex2": 100,
    "ContrastStandard": 0,
    "SharpnessStandard": 3,
    "SaturationStandard": 0,
    "ColorToneStandard": 0,
    "FilterEffectStandard": "n/a",
    "ToningEffectStandard": "n/a",
    "ContrastPortrait": 0,
    "SharpnessPortrait": 2,
    "SaturationPortrait": 0,
    "ColorTonePortrait": 0,
    "FilterEffectPortrait": "n/a",
    "ToningEffectPortrait": "n/a",
    "ContrastLandscape": 0,
    "SharpnessLandscape": 4,
    "SaturationLandscape": 0,
    "ColorToneLandscape": 0,
    "FilterEffectLandscape": "n/a",
    "ToningEffectLandscape": "n/a",
    "ContrastNeutral": 0,
    "SharpnessNeutral": 0,
    "SaturationNeutral": 0,
    "ColorToneNeutral": 0,
    "FilterEffectNeutral": "n/a",
    "ToningEffectNeutral": "n/a",
    "ContrastFaithful": 0,
    "SharpnessFaithful": 0,
    "SaturationFaithful": 0,
    "ColorToneFaithful": 0,
    "FilterEffectFaithful": "n/a",
    "ToningEffectFaithful": "n/a",
    "ContrastMonochrome": 0,
    "SharpnessMonochrome": 3,
    "SaturationMonochrome": "n/a",
    "ColorToneMonochrome": "n/a",
    "FilterEffectMonochrome": "None",
    "ToningEffectMonochrome": "None",
    "ContrastAuto": 0,
    "SharpnessAuto": 3,
    "SaturationAuto": 0,
    "ColorToneAuto": 0,
    "FilterEffectAuto": "n/a",
    "ToningEffectAuto": "n/a",
    "ContrastUserDef1": -4,
    "SharpnessUserDef1": 0,
    "SaturationUserDef1": -4,
    "ColorToneUserDef1": 2,
    "FilterEffectUserDef1": "None",
    "ToningEffectUserDef1": "None",
    "ContrastUserDef2": 0,
    "SharpnessUserDef2": 3,
    "SaturationUserDef2": 0,
    "ColorToneUserDef2": 0,
    "FilterEffectUserDef2": "None",
    "ToningEffectUserDef2": "None",
    "ContrastUserDef3": 0,
    "SharpnessUserDef3": 3,
    "SaturationUserDef3": 0,
    "ColorToneUserDef3": 0,
    "FilterEffectUserDef3": "None",
    "ToningEffectUserDef3": "None",
    "UserDef1PictureStyle": "Standard",
    "UserDef2PictureStyle": "Standard",
    "UserDef3PictureStyle": "Standard",
    "CanonModelID": "EOS 5D Mark III",
    "ThumbnailImageValidArea": "0 159 7 112",
    "Canon_0x0019": 1,
    "AFInfoSize": 530,
    "AFAreaMode": "Single-point AF",
    "NumAFPoints": 61,
    "ValidAFPoints": 61,
    "CanonImageWidth": 5760,
    "CanonImageHeight": 3840,
    "AFImageWidth": 5760,
    "AFImageHeight": 3840,
    "AFAreaWidths": "190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190 190",
    "AFAreaHeights": "188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188 188",
    "AFAreaXPositions": "288 0 -288 1520 1232 944 639 288 0 -1520 -1232 -944 -639 -288 1520 1232 944 639 288 0 -1520 -1232 -944 -639 -288 1520 1232 944 639 288 0 -1520 -1232 -944 -639 -288 1520 1232 944 639 288 0 -1520 -1232 -944 -639 -288 1520 1232 944 639 288 0 -1520 -1232 -944 -639 -288 288 0 -288",
    "AFAreaYPositions": "-648 -648 -648 -433 -433 -433 -433 -433 -433 -433 -433 -433 -433 -433 -215 -215 -215 -215 -215 -215 -215 -215 -215 -215 -215 0 0 0 0 0 0 0 0 0 0 0 215 215 215 215 215 215 215 215 215 215 215 433 433 433 433 433 433 433 433 433 433 433 648 648 648",
    "AFPointsInFocus": 30,
    "AFPointsSelected": 30,
    "TimeZone": "-05:00",
    "TimeZoneCity": "Chicago",
    "DaylightSavings": "On",
    "BracketMode": "Off",
    "BracketValue": 0,
    "BracketShotNumber": 0,
    "RawJpgSize": "Large",
    "WBBracketMode": "Off",
    "WBBracketValueAB": 0,
    "WBBracketValueGM": 0,
    "LiveViewShooting": "Off",
    "FocusDistanceUpper": "2.19 m",
    "FocusDistanceLower": "1.13 m",
    "FlashExposureLock": "Off",
    "LensModel": "EF16-35mm f/2.8L II USM",
    "InternalSerialNumber": "",
    "DustRemovalData": "(Binary data 1024 bytes, use -b option to extract)",
    "CropLeftMargin": 0,
    "CropRightMargin": 0,
    "CropTopMargin": 0,
    "CropBottomMargin": 0,
    "AspectRatio": "3:2",
    "CroppedImageWidth": 5760,
    "CroppedImageHeight": 3840,
    "CroppedImageLeft": 0,
    "CroppedImageTop": 0,
    "ToneCurve": "Standard",
    "Sharpness": 0,
    "SharpnessFrequency": "n/a",
    "SensorRedLevel": 0,
    "SensorBlueLevel": 0,
    "WhiteBalanceRed": 0,
    "WhiteBalanceBlue": 0,
    "ColorTemperature": 2500,
    "PictureStyle": "Neutral",
    "DigitalGain": 0,
    "WBShiftAB": 0,
    "WBShiftGM": 0,
    "MeasuredRGGB": "247 1024 1024 1244",
    "ColorSpace": "sRGB",
    "VRDOffset": 0,
    "SensorWidth": 5920,
    "SensorHeight": 3950,
    "SensorLeftBorder": 140,
    "SensorTopBorder": 96,
    "SensorRightBorder": 5899,
    "SensorBottomBorder": 3935,
    "BlackMaskLeftBorder": 0,
    "BlackMaskTopBorder": 0,
    "BlackMaskRightBorder": 0,
    "BlackMaskBottomBorder": 0,
    "ColorDataVersion": "10 (1DX/5DmkIII/6D/70D/100D/650D/700D/M)",
    "WB_RGGBLevelsAsShot": "1551 1024 1024 2140",
    "ColorTempAsShot": 3542,
    "WB_RGGBLevelsAuto": "1551 1024 1024 2140",
    "ColorTempAuto": 3542,
    "WB_RGGBLevelsMeasured": "1551 1024 1024 2140",
    "ColorTempMeasured": 3542,
    "WB_RGGBLevelsUnknown": "1551 1024 1024 2140",
    "ColorTempUnknown": 3542,
    "WB_RGGBLevelsUnknown2": "1024 1024 1024 1024",
    "ColorTempUnknown2": 4405,
    "WB_RGGBLevelsUnknown3": "1024 1024 1024 1024",
    "ColorTempUnknown3": 4405,
    "WB_RGGBLevelsUnknown4": "1551 1024 1024 2140",
    "ColorTempUnknown4": 3542,
    "WB_RGGBLevelsUnknown5": "1551 1024 1024 2140",
    "ColorTempUnknown5": 3542,
    "WB_RGGBLevelsUnknown6": "1551 1024 1024 2140",
    "ColorTempUnknown6": 3542,
    "WB_RGGBLevelsUnknown7": "1549 1024 1024 2140",
    "ColorTempUnknown7": 3542,
    "WB_RGGBLevelsUnknown8": "1549 1024 1024 2140",
    "ColorTempUnknown8": 3542,
    "WB_RGGBLevelsUnknown9": "798 1022 1023 1200",
    "ColorTempUnknown9": 3072,
    "WB_RGGBLevelsUnknown10": "862 1170 1170 481",
    "ColorTempUnknown10": 3076,
    "WB_RGGBLevelsDaylight": "2024 1024 1024 1631",
    "ColorTempDaylight": 5200,
    "WB_RGGBLevelsShade": "2325 1024 1024 1391",
    "ColorTempShade": 7000,
    "WB_RGGBLevelsCloudy": "2180 1024 1024 1502",
    "ColorTempCloudy": 6000,
    "WB_RGGBLevelsTungsten": "1458 1024 1024 2427",
    "ColorTempTungsten": 3200,
    "WB_RGGBLevelsFluorescent": "1768 1024 1024 2330",
    "ColorTempFluorescent": 3714,
    "WB_RGGBLevelsKelvin": "1160 1024 1024 3093",
    "ColorTempKelvin": 2494,
    "WB_RGGBLevelsFlash": "2255 1024 1024 1477",
    "ColorTempFlash": 6314,
    "WB_RGGBLevelsUnknown11": "2024 1024 1024 1631",
    "ColorTempUnknown11": 5189,
    "WB_RGGBLevelsUnknown12": "2024 1024 1024 1631",
    "ColorTempUnknown12": 5189,
    "WB_RGGBLevelsUnknown13": "2024 1024 1024 1631",
    "ColorTempUnknown13": 5189,
    "WB_RGGBLevelsUnknown14": "2024 1024 1024 1631",
    "ColorTempUnknown14": 5189,
    "WB_RGGBLevelsUnknown15": "2024 1024 1024 1631",
    "ColorTempUnknown15": 5189,
    "WB_RGGBLevelsUnknown16": "1018 1024 1024 1019",
    "ColorTempUnknown16": 4405,
    "WB_RGGBLevelsUnknown17": "1018 1024 1024 1019",
    "ColorTempUnknown17": 4405,
    "WB_RGGBLevelsUnknown18": "1018 1024 1024 1019",
    "ColorTempUnknown18": 4405,
    "WB_RGGBLevelsUnknown19": "1018 1024 1024 1019",
    "ColorTempUnknown19": 4405,
    "WB_RGGBLevelsUnknown20": "1018 1024 1024 1019",
    "ColorTempUnknown20": 4405,
    "CameraColorCalibration01": "-309  390  892 (10900K)",
    "CameraColorCalibration02": "-291  399  869 (10000K)",
    "CameraColorCalibration03": "-245  422  811 (8300K)",
    "CameraColorCalibration04": "-193  451  754 (7000K)",
    "CameraColorCalibration05": "-139  481  698 (6000K)",
    "CameraColorCalibration06": "-111  498  672 (5600K)",
    "CameraColorCalibration07": " -81  518  643 (5200K)",
    "CameraColorCalibration08": " -33  546  596 (4700K)",
    "CameraColorCalibration09": "  23  585  548 (4200K)",
    "CameraColorCalibration10": "  77  628  507 (3800K)",
    "CameraColorCalibration11": " 126  668  471 (3500K)",
    "CameraColorCalibration12": " 183  719  432 (3200K)",
    "CameraColorCalibration13": " 230  758  397 (3000K)",
    "CameraColorCalibration14": " 270  807  378 (2800K)",
    "CameraColorCalibration15": " 376  937  327 (2400K)",
    "AverageBlackLevel": "2048 2048 2048 2048",
    "RawMeasuredRGGB": "28794 117836 115237 142120",
    "PerChannelBlackLevel": "2047 2047 2048 2048",
    "NormalWhiteLevel": 14809,
    "SpecularWhiteLevel": 15321,
    "LinearityUpperMargin": 10156,
    "CRWParam": "(Binary data 43572 bytes, use -b option to extract)",
    "Flavor": "(Binary data 16792 bytes, use -b option to extract)",
    "PictureStyleUserDef": "Standard; Standard; Standard",
    "PictureStylePC": "None; None; None",
    "CustomPictureStyleFileName": "",
    "Canon_0x4011": "[...]",
    "Canon_0x4012": "",
    "AFMicroAdjMode": "Disable",
    "AFMicroAdjValue": 0,
    "VignettingCorrVersion": 0,
    "PeripheralLighting": "On",
    "DistortionCorrection": "Off",
    "ChromaticAberrationCorr": "On",
    "PeripheralLightingValue": 60,
    "DistortionCorrectionValue": 100,
    "OriginalImageWidth": 5760,
    "OriginalImageHeight": 3840,
    "PeripheralLightingSetting": "On",
    "ChromaticAberrationSetting": "On",
    "PeripheralIlluminationCorr": "Off",
    "AutoLightingOptimizer": "Off",
    "HighlightTonePriority": "Off",
    "LongExposureNoiseReduction": "Off",
    "HighISONoiseReduction": "Standard",
    "MultiExposure": "Off",
    "MultiExposureControl": "Additive",
    "MultiExposureShots": 0,
    "HDR": "Off",
    "HDREffect": "Natural",
    "Canon_0x4027": "20 590343 2846162996 121374208 13684944",
    "AFConfigTool": "Case 1",
    "AFTrackingSensitivity": 0,
    "AFAccelDecelTracking": 0,
    "AFPointSwitching": 0,
    "AIServoFirstImage": "Equal Priority",
    "AIServoSecondImage": "Equal Priority",
    "USMLensElectronicMF": "Enable After AF",
    "AFAssistBeam": "Enable",
    "OneShotAFRelease": "Focus Priority",
    "LensDriveWhenAFImpossible": "Continue Focus Search",
    "SelectAFAreaSelectionMode": "Single-point AF, Auto, Zone AF, AF Point Expansion (4 point), Spot AF, AF Point Expansion (8 point)",
    "AFAreaSelectionMethod": "M-Fn Button",
    "OrientationLinkedAF": "Same for Vert/Horiz Points",
    "ManualAFPointSelPattern": "Stops at AF Area Edges",
    "AFPointDisplayDuringFocus": "Selected (constant)",
    "VFDisplayIllumination": "Auto"
  },
  "CanonCustom": {
    "ExposureLevelIncrements": "1/3 Stop",
    "ISOSpeedIncrements": "1/3 Stop",
    "AEBAutoCancel": "On",
    "AEBSequence": "0,-,+",
    "AEBShotCount": "3 shots",
    "SafetyShift": "Disable",
    "ViewfinderWarnings": "Monochrome, WB corrected, One-touch image quality",
    "LVShootingAreaDisplay": "Outlined",
    "CustomControls": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 3",
    "DialDirectionTvAv": "Normal",
    "MultiFunctionLock": "Off; Quick control dial",
    "AddAspectRatioInfo": "Off",
    "DefaultEraseOption": "Cancel selected"
  },
  "InteropIFD": {
    "InteropIndex": "R98 - DCF basic file (sRGB)",
    "InteropVersion": "0100"
  },
  "GPS": {
    "GPSVersionID": "2.3.0.0"
  },
  "IFD1": {
    "ThumbnailOffset": 80324,
    "ThumbnailLength": 9497,
    "ThumbnailImage": "(Binary data 9497 bytes, use -b option to extract)"
  },
  "IFD2": {
    "ImageWidth": 592,
    "ImageHeight": 395,
    "BitsPerSample": "16 16 16",
    "Compression": "Uncompressed",
    "PhotometricInterpretation": "RGB",
    "StripOffsets": 1178564,
    "SamplesPerPixel": 3,
    "RowsPerStrip": 395,
    "StripByteCounts": 1403040,
    "PlanarConfiguration": "Chunky",
    "Exif_0xc5d9": 2,
    "SRawType": 3,
    "Exif_0xc6dc": "577 386 14 9"
  },
  "IFD3": {
    "Compression": "JPEG (old-style)",
    "StripOffsets": 2915268,
    "StripByteCounts": 21439884,
    "Exif_0xc5d8": 1,
    "CR2CFAPattern": "[Red,Green][Green,Blue]",
    "RawImageSegmentation": "1 2960 2960",
    "SRawType": 1
  },
  "Composite": {
    "DriveMode": "Single-frame Shooting",
    "FileNumber": "100-8428",
    "ISO": 800,
    "Lens": "16.0 - 35.0 mm",
    "ShootingMode": "Manual",
    "WB_RGGBLevels": "1551 1024 1024 2140",
    "Aperture": 2.8,
    "BlueBalance": 2.089844,
    "ImageSize": "5760x3840",
    "LensID": "Canon EF 16-35mm f/2.8L II USM",
    "Megapixels": 22.1,
    "RedBalance": 1.514648,
    "ScaleFactor35efl": 1.0,
    "ShutterSpeed": "1/250",
    "SubSecCreateDate": "2019:09:08 03:28:14.00",
    "SubSecDateTimeOriginal": "2019:09:08 03:28:14.00",
    "SubSecModifyDate": "2019:09:08 03:28:14.00",
    "Lens35efl": "16.0 - 35.0 mm (35 mm equivalent: 15.5 - 34.0 mm)",
    "CircleOfConfusion": "0.031 mm",
    "DOF": "0.39 m (1.49 - 1.88 m)",
    "FOV": "55.8 deg",
    "FocalLength35efl": "35.0 mm (35 mm equivalent: 34.0 mm)",
    "HyperfocalDistance": "14.13 m",
    "LightValue": 7.9
  }
}]

Activity

  1. changed the title [-]ValueError: box can't exceed original image size in an "CR2 Photo"[/-] [+]ValueError: box can't exceed original image size in a "CR2 Photo"[/+] on Apr 5, 2022
  2. radarhere commented on Apr 5, 2022

    @radarhere
    Member

    Hi. The image you've linked to has data inside telling image viewers to rotate the image 90 degrees, but Pillow is incorrectly making its size calculations before considering that.

    if you'd like an immediate solution, just insert a call to im.load() before im.thumbnail(size).

    with Image.open(infile) as im:
        im.load()
        im.thumbnail(size)
        im.save(outfile, "JPEG")
  3. radarhere commented on Apr 5, 2022

    @radarhere
    Member

    I've created PR #6186 to resolve this.

  4. imfantuan commented on Apr 6, 2022

    @imfantuan
    Author

    你好。您链接到的图像内部有数据告诉图像查看器将图像旋转 90 度,但 Pillow 在考虑之前错误地进行了尺寸计算。

    如果您想要立即解决方案,只需插入对im.load()before的调用im.thumbnail(size)。

    与 图像。打开(infile)作为 我:
        我。加载()
        我。缩略图(大小)
        我。保存( outfile , "JPEG" )

    Good to know, and it worked. 👏👏

    But it seems that I am getting a mirror image with im.load():

    photo-1648965919745-4ef7713eeb57_1

    And this is Find in macOS:
    CleanShot 2022-04-06 at 13 29 05@2x

  5. radarhere commented on Apr 6, 2022

    @radarhere
    Member

    I don't know why macOS is mirroring the image.

    If I use tiffinfo to try and inspect it, I get 9 warnings.
    If I try and convert it with ImageMagick, I get 12 warnings, the image becomes green and is turned sideways.

    So there's something wrong with the image.

    Allow me to ask - do you actually know if macOS is showing the image correctly? Do you know whether the image should be flipped or not?

    I don't suppose you have another image that is also showing you a different orientation than what you expect?

  6. imfantuan commented on Apr 6, 2022

    @imfantuan
    Author

    I don't know why macOS is mirroring the image.

    If I use tiffinfo to try and inspect it, I get 9 warnings. If I try and convert it with ImageMagick, I get 12 warnings, the image becomes green and is turned sideways.

    So there's something wrong with the image.

    Allow me to ask - do you actually know if macOS is showing the image correctly? Do you know whether the image should be flipped or not?

    I don't suppose you have another image that is also showing you a different orientation than what you expect?

    Thank you for your quick reply!

    ... Do you know whether the image should be flipped or not?

    I am not the creator, so i can't confirm this.

    However, here're some different results:

    Cloudinary.com

    1. Go to https://demo.cloudinary.com/default
    2. Upload this image (from that link, or local disk)
    3. You can see those demos of this image.
    4. Like: https://res.cloudinary.com/idemo/image/upload/ar_120:247,c_fill,dpr_2.0,g_auto,w_250/fpjmkghc4jefjca3m10h.jpg

    Unsplash.com ( With one w=xxx arg)

    Anyway, it's good enough! Thank you @radarhere!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions