Home
Go
image Example
Updated Jan 24, 2025
Dot Net Perls
Image. Suppose you have an image file (a PNG or JPG) and wish to get its width and height in a Go program. This can be done with the "image" package.
Some details. With images, we can get the Width and Height from the image file just by parsing the file. We simply call DecodeConfig on a JPG or PNG.
Example. To begin, we must import the "image" module. If we import the "image/jpeg" and "image/png" modules as well, we get full support for those types.
Start We call os.Open on the image file, and then bufio.NewReader to get a Reader for the file.
Next DecodeConfig receives the Reader we just created by calling bufio.Reader. It returns a Config instance.
Finally The Config will contain some useful details about the image, like Width and Height. The image format is also available.
package main import ( "fmt" "os" "bufio" "image" _ "image/jpeg" _ "image/png" ) func main() { path := `C:\programs\zip-chart.png` // Open file. inputFile, _ := os.Open(path) reader := bufio.NewReader(inputFile) // Decode image. config, _, _ := image.DecodeConfig(reader) // Print config. fmt.Printf("IMAGE: width=%v height=%v\n", config.Width, config.Height) }
IMAGE: width=300 height=151
Note, imports. If you try to open a JPEG or PNG file without the special import statement for that type, it will not work correctly.
Tip If your program only uses JPEGs, you could remove the PNG import. This probably is not worth doing.
_ "image/jpeg" _ "image/png"
Summary. Image parsing can be done with built-in libraries like the "image" module in Go. It is rarely worth implementing yourself, unless you are trying to learn about image formats.
File
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on Jan 24, 2025 (edit).
Home
Changes
© 2007-2025 Sam Allen