mirror of
				https://github.com/KevinMidboe/leifs-image-processor.git
				synced 2025-10-29 17:50:20 +00:00 
			
		
		
		
	Support for automatic rotating images based on exif metadata.
This commit is contained in:
		
							
								
								
									
										16
									
								
								processor.py
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								processor.py
									
									
									
									
									
								
							| @@ -26,6 +26,7 @@ def processImage(file, outputPath=None): | |||||||
|  |  | ||||||
|     print('outputpath', outputPath) |     print('outputpath', outputPath) | ||||||
|     image = Image.open(file) |     image = Image.open(file) | ||||||
|  |     image = rotateFromExifMetadata(image) | ||||||
|     fileID = uuid.uuid4().hex |     fileID = uuid.uuid4().hex | ||||||
|  |  | ||||||
|     for size in OUTPUT_SIZES: |     for size in OUTPUT_SIZES: | ||||||
| @@ -45,6 +46,21 @@ def processImage(file, outputPath=None): | |||||||
|       'variations': list(map(lambda vairation: vairation['name'], OUTPUT_SIZES)) |       'variations': list(map(lambda vairation: vairation['name'], OUTPUT_SIZES)) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | def rotateFromExifMetadata(image): | ||||||
|  |   for orientation in ExifTags.TAGS.keys(): | ||||||
|  |         if ExifTags.TAGS[orientation]=='Orientation': | ||||||
|  |             break | ||||||
|  |     exif=dict(image._getexif().items()) | ||||||
|  |  | ||||||
|  |     if exif[orientation] == 3: | ||||||
|  |         image=image.rotate(180, expand=True) | ||||||
|  |     elif exif[orientation] == 6: | ||||||
|  |         image=image.rotate(270, expand=True) | ||||||
|  |     elif exif[orientation] == 8: | ||||||
|  |         image=image.rotate(90, expand=True) | ||||||
|  |  | ||||||
|  |     return image | ||||||
|  |  | ||||||
| def generateFilename(fileID, modifier, outputPath): | def generateFilename(fileID, modifier, outputPath): | ||||||
|     filename = "{}_{}.{}".format(fileID, modifier, OUTPUT_EXTENSION) |     filename = "{}_{}.{}".format(fileID, modifier, OUTPUT_EXTENSION) | ||||||
|     return os.path.join(outputPath, filename) |     return os.path.join(outputPath, filename) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user