You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							29 lines
						
					
					
						
							723 B
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							29 lines
						
					
					
						
							723 B
						
					
					
				
								package images
							 | 
						|
								
							 | 
						|
								import (
							 | 
						|
									"bytes"
							 | 
						|
									"io"
							 | 
						|
									"path/filepath"
							 | 
						|
									"strings"
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								/*
							 | 
						|
								* Preprocess image files on client side.
							 | 
						|
								* 1. possibly adjust the orientation
							 | 
						|
								* 2. resize the image to a width or height limit
							 | 
						|
								* 3. remove the exif data
							 | 
						|
								* Call this function on any file uploaded to SeaweedFS
							 | 
						|
								*
							 | 
						|
								 */
							 | 
						|
								func MaybePreprocessImage(filename string, data []byte, width, height int) (resized io.ReadSeeker, w int, h int) {
							 | 
						|
									ext := filepath.Ext(filename)
							 | 
						|
									ext = strings.ToLower(ext)
							 | 
						|
									switch ext {
							 | 
						|
									case ".png", ".gif":
							 | 
						|
										return Resized(ext, bytes.NewReader(data), width, height, "")
							 | 
						|
									case ".jpg", ".jpeg":
							 | 
						|
										data = FixJpgOrientation(data)
							 | 
						|
										return Resized(ext, bytes.NewReader(data), width, height, "")
							 | 
						|
									}
							 | 
						|
									return bytes.NewReader(data), 0, 0
							 | 
						|
								}
							 |