From 0d13e86634a7397d490fe496d85d2ebf81882ae2 Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Mon, 6 Apr 2015 23:59:42 +0200 Subject: [PATCH] feat(docs): add API and examples --- README.md | 101 ++++++++++++++++++++++++++++++++++++++++++-------- image_test.go | 13 +++++++ 2 files changed, 99 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 0debd8a..be900fc 100644 --- a/README.md +++ b/README.md @@ -58,7 +58,7 @@ bimg performance tests coming soon! ## API -### Example +### Examples ```go import ( @@ -66,18 +66,85 @@ import ( "os" "gopkg.in/h2non/bimg.v0" ) +``` + +#### Resize + +```go +buffer, err := bimg.Read("image.jpg") +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +newImage, err := bimg.NewImage(buffer).Resize(800, 600) +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +size, err := bimg.NewImage(newImage).Size() +if size.Width == 400 && size.Height == 300 { + fmt.Println("The image size is valid") +} + +bimg.Write("new.jpg", newImage) +``` + +#### Rotate +```go +buffer, err := bimg.Read("image.jpg") +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +newImage, err := bimg.NewImage(buffer).Rotate(90) +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +bimg.Write("new.jpg", newImage) +``` + +#### Convert + +```go +buffer, err := bimg.Read("image.jpg") +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +newImage, err := bimg.NewImage(buffer).Convert(bimg.PNG) +if err != nil { + fmt.Fprintln(os.Stderr, err) +} + +if bimg.NewImage(newImage).Type() == "png" { + fmt.Fprintln(os.Stderr, "The image was converted into png") +} +``` + +#### Process + +```go options := bimg.Options{ - Width: 800, - Height: 600, - Crop: true, - Quality: 95, + Width: 800, + Height: 600, + Crop: true, + Quality: 95, + Rotate: 180, +} + +buffer, err := bimg.Read("image.jpg") +if err != nil { + fmt.Fprintln(os.Stderr, err) } -newImage, err := bimg.Resize(image, options) +newImage, err := bimg.NewImage(buffer).Process(options) if err != nil { fmt.Fprintln(os.Stderr, err) } + +bimg.Write("new.jpg", newImage) ``` #### func DetermineImageTypeName @@ -86,6 +153,12 @@ if err != nil { func DetermineImageTypeName(buf []byte) string ``` +#### func Initialize + +```go +func Initialize() +``` + #### func IsTypeNameSupported ```go @@ -110,6 +183,12 @@ func Read(path string) ([]byte, error) func Resize(buf []byte, o Options) ([]byte, error) ``` +#### func Shutdown + +```go +func Shutdown() +``` + #### type Angle ```go @@ -291,7 +370,7 @@ const ( ) ``` -#### func DetermineImageType +#### func DetermineImageType ```go func DetermineImageType(buf []byte) ImageType @@ -340,14 +419,6 @@ type Options struct { } ``` - -#### type Vips - -```go -type Vips struct { -} -``` - ## License MIT - Tomas Aparicio diff --git a/image_test.go b/image_test.go index 17d5225..ba22602 100644 --- a/image_test.go +++ b/image_test.go @@ -53,6 +53,19 @@ func TestImageConvert(t *testing.T) { Write("fixtures/test_image_convert_out.png", buf) } +func TestImageMetadata(t *testing.T) { + data, err := initImage("test.png").Metadata(PNG) + if err != nil { + t.Errorf("Cannot process the image: %#v", err) + } + if data.Alpha != true { + t.Fatal("Invalid alpha channel") + } + if data.Size.Width != 400 { + t.Fatal("Invalid width size") + } +} + func initImage(file string) *Image { buf, _ := Read(path.Join("fixtures", file)) return NewImage(buf)