@kiel
В Go есть несколько пакетов для работы с изображениями, в том числе image
, image/color
, image/draw
, image/jpeg
, image/png
и другие. Вот некоторые примеры того, как использовать эти пакеты для работы с изображениями:
- Открытие изображения из файла:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import (
"image"
_ "image/png"
_ "image/jpeg"
"os"
)
file, err := os.Open("image.png") // замените на свой файл
if err != nil {
// обработка ошибок
}
defer file.Close()
img, _, err := image.Decode(file)
if err != nil {
// обработка ошибок
}
|
- Создание нового изображения:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import (
"image"
"image/color"
)
width, height := 100, 100
img := image.NewRGBA(image.Rect(0, 0, width, height))
// Заполнение изображения цветом
for x := 0; x < width; x++ {
for y := 0; y < height; y++ {
img.Set(x, y, color.RGBA{255, 0, 0, 255}) // красный цвет
}
}
|
- Сохранение изображения в файл:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import (
"image/png"
"os"
)
file, err := os.Create("output.png") // замените на свой файл
if err != nil {
// обработка ошибок
}
defer file.Close()
if err := png.Encode(file, img); err != nil {
// обработка ошибок
}
|
- Работа с пикселями изображения:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import (
"image"
"image/color"
)
// Получение цвета пикселя
color := img.At(x, y)
// Установка цвета пикселя
img.Set(x, y, color.RGBA{255, 0, 0, 255}) // красный цвет
// Получение компонентов цвета пикселя
r, g, b, a := color.RGBA()
// Создание нового цвета
newColor := color.RGBA{r, g, b, a}
|
- Преобразование изображения:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import (
"image"
"image/jpeg"
"os"
)
// Открытие изображения
file, err := os.Open("input.jpg")
if err != nil {
// обработка ошибок
}
defer file.Close()
img, _, err := image.Decode(file)
if err != nil {
// обработка ошибок
}
// Преобразование изображения в оттенки серого
grayImg := image.NewGray(img.Bounds())
draw.Draw(grayImg, grayImg.Bounds(), img, image.Point{}, draw.Src)
|
Это только некоторые примеры того, как работать с изображениями в Go. Конечно, есть много других функций и методов, которые могут быть полезны при работе с изображениями.