Imgpro is a multifunctional image information recognition library, supporting a variety of image formats. And it can be run in the browser through WebAssembly(wasm).
Online Demo: imgpro
$ go get github.com/echosoar/imgproimport (
"github.com/echosoar/imgpro"
)
func main() {
// run by file path
result := imgpro.Run("./test/imgs/go.png", []string{"size", "type"})
// you can also run by file binary data
// result := imgpro.RunBinary(binary, attributes)
if result["size"].Int != 60746 {
panic("size error")
}
if result["type"].String != "png" {
panic("type error")
}
}Get image information by local file path
| Param Index | Param Name | Type | Examples |
|---|---|---|---|
| 0 | filePath | string | "./test/imgs/go.png" |
| 1 | attributes | []string | []string{"size", "type", "rgba", "hue", "qrcode"} |
import (
"github.com/echosoar/imgpro"
)
func main() {
result := imgpro.Run("./test/imgs/go.png", []string{"size", "type", "rgba", "hue", "qrcode"})
}Get image information by file binary data
| Param Index | Param Name | Type | Examples |
|---|---|---|---|
| 0 | fileBinary | []byte | reader.Read(binary) |
| 1 | attributes | []string | []string{"size", "type", "rgba", "hue", "qrcode"} |
import (
"bufio"
"os"
"github.com/echosoar/imgpro"
)
func main() {
fileHandler, err := os.Open(filePath)
if err != nil {
panic("open error")
}
defer fileHandler.Close()
fileBytes := make([]byte, size)
reader := bufio.NewReader(fileHandler)
_, readErr := reader.Read(fileBytes)
if readErr != nil {
panic("file read error")
}
result := imgpro.RunBinary(fileBytes, []string{"size", "type", "rgba", "hue", "qrcode"})
}| Features | Attribute | PNG | JPG | GIF | BMP | WebP | HEIC | AVIF |
|---|---|---|---|---|---|---|---|---|
| File Size | size | ✅ | ✅ | ✅ | ✅ | ✅ | ||
| Format Detect | type | ✅ | ✅ | ✅ | ✅ | ✅ | ||
| Width/Height | wh | ✅ | ✅ | ✅ | ✅ | ✅ | ||
| Frames | frame | ✅ | ✅ | ✅ | ||||
| Color data | rgba | ✅ | ✅ | ✅ | ||||
| Color proportion | hue | ✅ | ✅ | ✅ | ||||
| QR Code | qrcode | ✅ | ✅ | ✅ | ||||
| Exif | exif | ✅ | ||||||
| Create Time | time | ✅ | ||||||
| Position(GPS) Info | position | ✅ | ||||||
| Device Info | device | ✅ |
© MIT by echosoar