Вы не можете выбрать более 25 тем
			Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
		
		
		
		
		
			
		
			
				
					
					
						
							50 строки
						
					
					
						
							857 B
						
					
					
				
			
		
		
	
	
							50 строки
						
					
					
						
							857 B
						
					
					
				| package media
 | |
| 
 | |
| import (
 | |
| 	"image"
 | |
| 	"image/jpeg"
 | |
| 	"os"
 | |
| 	"path"
 | |
| 
 | |
| 	"github.com/nfnt/resize"
 | |
| )
 | |
| 
 | |
| func imageSize(name string) (image.Rectangle, error) {
 | |
| 	f, err := os.Open(name)
 | |
| 	if err != nil {
 | |
| 		return image.ZR, err
 | |
| 	}
 | |
| 	defer f.Close()
 | |
| 
 | |
| 	cfg, _, err := image.DecodeConfig(f)
 | |
| 	if err != nil {
 | |
| 		return image.ZR, err
 | |
| 	}
 | |
| 
 | |
| 	width := cfg.Width
 | |
| 	height := cfg.Height
 | |
| 
 | |
| 	return image.Rect(0, 0, width, height), nil
 | |
| }
 | |
| 
 | |
| func ThumbImage(filename string, img image.Image, size image.Rectangle) error {
 | |
| 	os.MkdirAll(path.Dir(filename), 0755)
 | |
| 	fthumb, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0655)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	img = resize.Resize(uint(size.Dx()), uint(size.Dy()), img, resize.Bilinear)
 | |
| 
 | |
| 	err = jpeg.Encode(fthumb, img, nil)
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	err = fthumb.Close()
 | |
| 	if err != nil {
 | |
| 		return err
 | |
| 	}
 | |
| 
 | |
| 	return nil
 | |
| }
 | |
| 
 |