Чтобы наложить изображение на другое изображение в языке программирования Go, в центре, вам необходимо использовать стандартную библиотеку Go image и image/draw.
Вот пример кода, который показывает, как это можно сделать:
package main import ( "fmt" "image" "image/draw" "image/jpeg" "os" ) func main() { // Открываем основное изображение bgImageFile, err := os.Open("background.jpg") if err != nil { fmt.Println(err) os.Exit(1) } defer bgImageFile.Close() // Декодируем изображение bgImage, err := jpeg.Decode(bgImageFile) if err != nil { fmt.Println(err) os.Exit(1) } // Открываем изображение, которое хотим наложить overlayImageFile, err := os.Open("overlay.png") if err != nil { fmt.Println(err) os.Exit(1) } defer overlayImageFile.Close() // Декодируем изображение overlayImage, err := jpeg.Decode(overlayImageFile) if err != nil { fmt.Println(err) os.Exit(1) } // Создаем новое изображение того же размера, что и основное изображение result := image.NewRGBA(bgImage.Bounds()) // Наложите основное изображение на новое изображение draw.Draw(result, bgImage.Bounds(), bgImage, image.ZP, draw.Src) // Определите координаты верхнего левого угла изображения, которое хотите наложить overlayX := (bgImage.Bounds().Dx() - overlayImage.Bounds().Dx()) / 2 overlayY := (bgImage.Bounds().Dy() - overlayImage.Bounds().Dy()) / 2 overlayPos := image.Point{overlayX, overlayY} // Наложите изображение, которое вы хотите наложить, на новое изображение draw.Draw(result, overlayImage.Bounds().Add(overlayPos), overlayImage, image.ZP, draw.Over) // Сохраните результат в новый файл изображения resultFile, err := os.Create("result.jpg") if err != nil { fmt.Println(err) os.Exit(1) } defer resultFile.Close() // Кодируем новое изображение в формат JPEG и сохраняем его jpeg.Encode(resultFile, result, nil) fmt.Println("Изображение успешно наложено!") }
В данном примере используется два файла изображений: background.jpg
, которое является основным изображением, и overlay.png
, которое является изображением, которое будет наложено на основное изображение.
Программа открывает оба файла изображений, декодирует их и создает новое изображение, которое является копией основного изображения (bgImage
). Затем определены координаты верхнего левого угла изображения, которое нужно наложить, чтобы оно было в центре основного изображения. Изображение наложено на новое изображение result
с помощью функции draw.Draw
, используя константу draw.Over
. Наконец, новое изображение кодируется в формат JPEG и сохраняется в файл с именем result.jpg
.
После выполнения программы, вы получите файл result.jpg
, в котором изображение будет наложено на заданный файл background.jpg
в центре. Обратите внимание, что вы должны заменить пути к файлам background.jpg
и overlay.png
на соответствующие пути на вашей системе.