mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-08 14:18:26 +02:00
Resize method should not use bounds
This commit is contained in:
@@ -173,23 +173,19 @@ func ImageFromSerialized(m SerializableImageMetadata, data [][]byte) (*ImageData
|
|||||||
return &ans, nil
|
return &ans, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *ImageFrame) Resize(x_frac, y_frac float64) *ImageFrame {
|
func (ans ImageFrame) Resize(x_frac, y_frac float64) *ImageFrame {
|
||||||
b := self.Img.Bounds()
|
ans.Width = int(x_frac * float64(ans.Width))
|
||||||
left, top, width, height := b.Min.X, b.Min.Y, b.Dx(), b.Dy()
|
ans.Height = int(y_frac * float64(ans.Height))
|
||||||
ans := *self
|
ans.Img = imaging.ResizeWithOpacity(ans.Img, ans.Width, ans.Height, imaging.Lanczos, ans.Is_opaque)
|
||||||
ans.Width = int(x_frac * float64(width))
|
ans.Left = int(x_frac * float64(ans.Left))
|
||||||
ans.Height = int(y_frac * float64(height))
|
ans.Top = int(y_frac * float64(ans.Top))
|
||||||
ans.Img = imaging.ResizeWithOpacity(self.Img, ans.Width, ans.Height, imaging.Lanczos, self.Is_opaque)
|
|
||||||
ans.Left = int(x_frac * float64(left))
|
|
||||||
ans.Top = int(y_frac * float64(top))
|
|
||||||
return &ans
|
return &ans
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *ImageData) Resize(x_frac, y_frac float64) *ImageData {
|
func (self *ImageData) Resize(x_frac, y_frac float64) *ImageData {
|
||||||
ans := *self
|
ans := *self
|
||||||
ans.Frames = make([]*ImageFrame, len(self.Frames))
|
ans.Frames = make([]*ImageFrame, len(self.Frames))
|
||||||
if err := parallel.Run_in_parallel_over_range(0, func(start, limit int) {
|
if err := parallel.Run_in_parallel_over_range(1, func(start, limit int) {
|
||||||
for i := start; i < limit; i++ {
|
for i := start; i < limit; i++ {
|
||||||
ans.Frames[i] = self.Frames[i].Resize(x_frac, y_frac)
|
ans.Frames[i] = self.Frames[i].Resize(x_frac, y_frac)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user