feat(metadata): add tests

master
Tomas Aparicio 11 years ago
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 {
}
```

@ -43,11 +43,13 @@ The [install script](https://github.com/lovell/sharp/blob/master/preinstall.sh)
## API ## API
### Example
```go ```go
import ( import (
"fmt" "fmt"
"os" "os"
"gopkg.in/h2non/bimg" "gopkg.in/h2non/bimg.v0"
) )
options := bimg.Options{ options := bimg.Options{
@ -63,6 +65,274 @@ if err != nil {
} }
``` ```
#### 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 {
}
```
## License ## License
MIT - Tomas Aparicio MIT - Tomas Aparicio

@ -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…
Cancel
Save