mirror of https://github.com/talgo-cloud/bimg.git
parent
69ceaab4d8
commit
6f3e935bbb
@ -0,0 +1,284 @@
|
||||
# bimg
|
||||
--
|
||||
|
||||
```bash
|
||||
import "gopkg.in/h2non/bimg.v0"
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
const QUALITY = 80
|
||||
```
|
||||
|
||||
```go
|
||||
const Version = "0.1.0"
|
||||
```
|
||||
|
||||
#### func DetermineImageTypeName
|
||||
|
||||
```go
|
||||
func DetermineImageTypeName(buf []byte) string
|
||||
```
|
||||
|
||||
#### func IsTypeNameSupported
|
||||
|
||||
```go
|
||||
func IsTypeNameSupported(t string) bool
|
||||
```
|
||||
|
||||
#### func IsTypeSupported
|
||||
|
||||
```go
|
||||
func IsTypeSupported(t ImageType) bool
|
||||
```
|
||||
|
||||
#### func Read
|
||||
|
||||
```go
|
||||
func Read(path string) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func Resize
|
||||
|
||||
```go
|
||||
func Resize(buf []byte, o Options) ([]byte, error)
|
||||
```
|
||||
|
||||
#### type Angle
|
||||
|
||||
```go
|
||||
type Angle int
|
||||
```
|
||||
|
||||
|
||||
```go
|
||||
const (
|
||||
D0 Angle = C.VIPS_ANGLE_D0
|
||||
D90 Angle = C.VIPS_ANGLE_D90
|
||||
D180 Angle = C.VIPS_ANGLE_D180
|
||||
D270 Angle = C.VIPS_ANGLE_D270
|
||||
)
|
||||
```
|
||||
|
||||
#### type Direction
|
||||
|
||||
```go
|
||||
type Direction int
|
||||
```
|
||||
|
||||
|
||||
```go
|
||||
const (
|
||||
HORIZONTAL Direction = C.VIPS_DIRECTION_HORIZONTAL
|
||||
VERTICAL Direction = C.VIPS_DIRECTION_VERTICAL
|
||||
)
|
||||
```
|
||||
|
||||
#### type Gravity
|
||||
|
||||
```go
|
||||
type Gravity int
|
||||
```
|
||||
|
||||
|
||||
```go
|
||||
const (
|
||||
CENTRE Gravity = iota
|
||||
NORTH
|
||||
EAST
|
||||
SOUTH
|
||||
WEST
|
||||
)
|
||||
```
|
||||
|
||||
#### type Image
|
||||
|
||||
```go
|
||||
type Image struct {
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func NewImage
|
||||
|
||||
```go
|
||||
func NewImage(buf []byte) *Image
|
||||
```
|
||||
|
||||
#### func (*Image) Convert
|
||||
|
||||
```go
|
||||
func (i *Image) Convert(t ImageType) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Crop
|
||||
|
||||
```go
|
||||
func (i *Image) Crop(width int, height int) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Extract
|
||||
|
||||
```go
|
||||
func (i *Image) Extract(top int, left int, width int, height int) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Flip
|
||||
|
||||
```go
|
||||
func (i *Image) Flip() ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Flop
|
||||
|
||||
```go
|
||||
func (i *Image) Flop() ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Metadata
|
||||
|
||||
```go
|
||||
func (i *Image) Metadata() (ImageMetadata, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Process
|
||||
|
||||
```go
|
||||
func (i *Image) Process(o Options) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Resize
|
||||
|
||||
```go
|
||||
func (i *Image) Resize(width int, height int) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Rotate
|
||||
|
||||
```go
|
||||
func (i *Image) Rotate(a Angle) ([]byte, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Size
|
||||
|
||||
```go
|
||||
func (i *Image) Size() (ImageSize, error)
|
||||
```
|
||||
|
||||
#### func (*Image) Type
|
||||
|
||||
```go
|
||||
func (i *Image) Type() string
|
||||
```
|
||||
|
||||
#### type ImageMetadata
|
||||
|
||||
```go
|
||||
type ImageMetadata struct {
|
||||
Orientation int
|
||||
Alpha bool
|
||||
Profile bool
|
||||
Space int
|
||||
Type string
|
||||
Size ImageSize
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func Metadata
|
||||
|
||||
```go
|
||||
func Metadata(buf []byte) (ImageMetadata, error)
|
||||
```
|
||||
|
||||
#### type ImageSize
|
||||
|
||||
```go
|
||||
type ImageSize struct {
|
||||
Width int
|
||||
Height int
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### func Size
|
||||
|
||||
```go
|
||||
func Size(buf []byte) (ImageSize, error)
|
||||
```
|
||||
|
||||
#### type ImageType
|
||||
|
||||
```go
|
||||
type ImageType int
|
||||
```
|
||||
|
||||
|
||||
```go
|
||||
const (
|
||||
UNKNOWN ImageType = iota
|
||||
JPEG
|
||||
WEBP
|
||||
PNG
|
||||
TIFF
|
||||
MAGICK
|
||||
)
|
||||
```
|
||||
|
||||
#### func DetermineImageType
|
||||
|
||||
```go
|
||||
func DetermineImageType(buf []byte) ImageType
|
||||
```
|
||||
|
||||
#### type Interpolator
|
||||
|
||||
```go
|
||||
type Interpolator int
|
||||
```
|
||||
|
||||
|
||||
```go
|
||||
const (
|
||||
BICUBIC Interpolator = iota
|
||||
BILINEAR
|
||||
NOHALO
|
||||
)
|
||||
```
|
||||
|
||||
#### func (Interpolator) String
|
||||
|
||||
```go
|
||||
func (i Interpolator) String() string
|
||||
```
|
||||
|
||||
#### type Options
|
||||
|
||||
```go
|
||||
type Options struct {
|
||||
Height int
|
||||
Width int
|
||||
Top int
|
||||
Left int
|
||||
Crop bool
|
||||
Enlarge bool
|
||||
Extend int
|
||||
Embed bool
|
||||
Quality int
|
||||
Compression int
|
||||
Type ImageType
|
||||
Rotate Angle
|
||||
Flip Direction
|
||||
Gravity Gravity
|
||||
Interpolator Interpolator
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
#### type Vips
|
||||
|
||||
```go
|
||||
type Vips struct {
|
||||
}
|
||||
```
|
||||
@ -0,0 +1,59 @@
|
||||
package bimg
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSize(t *testing.T) {
|
||||
files := []struct {
|
||||
name string
|
||||
width int
|
||||
height int
|
||||
}{
|
||||
{"test.jpg", 1680, 1050},
|
||||
{"test.png", 400, 300},
|
||||
{"test.webp", 550, 368},
|
||||
}
|
||||
|
||||
for _, file := range files {
|
||||
size, err := Size(readFile(file.name))
|
||||
if err != nil {
|
||||
t.Fatalf("Cannot read the image: %#v", err)
|
||||
}
|
||||
|
||||
if size.Width != file.width || size.Height != file.height {
|
||||
t.Fatalf("Unexpected image size: %dx%d", size.Width, size.Height)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestMetadata(t *testing.T) {
|
||||
files := []struct {
|
||||
name string
|
||||
format string
|
||||
}{
|
||||
{"test.jpg", "jpeg"},
|
||||
{"test.png", "png"},
|
||||
{"test.webp", "webp"},
|
||||
}
|
||||
|
||||
for _, file := range files {
|
||||
size, err := Metadata(readFile(file.name))
|
||||
if err != nil {
|
||||
t.Fatalf("Cannot read the image: %#v", err)
|
||||
}
|
||||
|
||||
if size.Type != file.format {
|
||||
t.Fatalf("Unexpected image format: %s", file.format)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func readFile(file string) []byte {
|
||||
data, _ := os.Open(path.Join("fixtures", file))
|
||||
buf, _ := ioutil.ReadAll(data)
|
||||
return buf
|
||||
}
|
||||
Loading…
Reference in new issue