From 356ab9394162a23cfe83884b4e4325e2c5b399e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlio=20C=C3=A9sar=20Batista?= Date: Wed, 5 Apr 2023 16:09:33 -0300 Subject: [PATCH] fix image size --- lib/pptx/pptx.go | 4 +++- lib/pptx/presentation.go | 10 ++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/pptx/pptx.go b/lib/pptx/pptx.go index 825c34da1..c23493631 100644 --- a/lib/pptx/pptx.go +++ b/lib/pptx/pptx.go @@ -53,9 +53,11 @@ const SLIDE_WIDTH = 9144000 const SLIDE_HEIGHT = 5143500 const HEADER_HEIGHT = 392471 -const IMAGE_WIDTH = SLIDE_WIDTH const IMAGE_HEIGHT = SLIDE_HEIGHT - HEADER_HEIGHT +// keep the right aspect ratio: SLIDE_WIDTH / SLIDE_HEIGHT = IMAGE_WIDTH / IMAGE_HEIGHT +const IMAGE_WIDTH = IMAGE_HEIGHT * (SLIDE_WIDTH / SLIDE_HEIGHT) + const RELS_SLIDE_XML = `` func getRelsSlideXml(imageId string) string { diff --git a/lib/pptx/presentation.go b/lib/pptx/presentation.go index 63cf860ce..0f4943b3c 100644 --- a/lib/pptx/presentation.go +++ b/lib/pptx/presentation.go @@ -53,21 +53,19 @@ func (p *Presentation) AddSlide(pngContent []byte, boardPath []string) error { return fmt.Errorf("error decoding PNG image: %v", err) } - var width, height, top, left int + var width, height int srcSize := src.Bounds().Size() // compute the size and position to fit the slide if srcSize.X > srcSize.Y { width = IMAGE_WIDTH - height = int(float64(width) * (float64(srcSize.X) / float64(srcSize.Y))) - left = 0 - top = (IMAGE_HEIGHT - height) / 2 + height = int(float64(width) * (float64(srcSize.Y) / float64(srcSize.X))) } else { height = IMAGE_HEIGHT width = int(float64(height) * (float64(srcSize.X) / float64(srcSize.Y))) - top = 0 - left = (IMAGE_WIDTH - width) / 2 } + top := (IMAGE_HEIGHT - height) / 2 + left := (SLIDE_WIDTH - width) / 2 slide := &Slide{ BoardPath: make([]string, len(boardPath)),