1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- package image
- type Scale struct {
- Width uint
- Height uint
- Scale float64
- }
- func NewScale(width uint, height uint, scale float64) *Scale {
- return &Scale{width, height, scale}
- }
- func (s Scale) MinRatio(width, height uint) Scale {
- scale := 1.0
- if s.Width/s.Height > width/height {
- if s.Height > height {
- scale = CustomScale(height, s.Height)
- }
- } else {
- if s.Width > width {
- scale = CustomScale(width, s.Width)
- }
- }
- width = uint(scale * float64(s.Width))
- height = uint(scale * float64(s.Height))
- return Scale{Width: width, Height: height, Scale: scale}
- }
- func (s Scale) MaxRatio(width, height uint) Scale {
- scale := 1.0
- if s.Width/s.Height > width/height {
- scale = CustomScale(height, s.Height)
- } else {
- scale = CustomScale(width, s.Width)
- }
- width = uint(scale * float64(s.Width))
- height = uint(scale * float64(s.Height))
- return Scale{Width: width, Height: height, Scale: scale}
- }
|