From 924be1d3f434bd4abdb9bad1ce5f95645d2ad786 Mon Sep 17 00:00:00 2001 From: Tomas Aparicio Date: Sun, 12 Apr 2015 11:44:26 +0200 Subject: [PATCH] fix(#28): zoom requires extract params --- README.md | 7 ++++--- image.go | 7 ++++--- image_test.go | 25 ++++++++++++++++--------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 572afe6..85bb97b 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,11 @@ bimg is designed to be a small and efficient library with a generic and useful s It uses internally libvips, which requires a [low memory footprint](http://www.vips.ecs.soton.ac.uk/index.php?title=Speed_and_Memory_Use) and it's typically 4x faster than using the quickest ImageMagick and GraphicsMagick settings or Go native `image` package, and in some cases it's even 8x faster processing JPEG images. -It can read JPEG, PNG, WEBP and TIFF formats and output to JPEG, PNG and WEBP, including conversion betweem them. It supports common [image operations](#supported-image-operations) such as crop, resize, rotate, zoom, watermark... +It can read JPEG, PNG, WEBP and TIFF formats and output to JPEG, PNG and WEBP, including conversion between them. It supports common [image operations](#supported-image-operations) such as crop, resize, rotate, zoom, watermark... For getting started, take a look to the [examples](#examples) and [programmatic API](https://godoc.org/github.com/h2non/bimg) documentation. -bimg was heavily inspired in [sharp](https://github.com/lovell/sharp), -its homologous package built for node.js by [Lovell Fuller](https://github.com/lovell). +bimg was heavily inspired in [sharp](https://github.com/lovell/sharp), its homologous package built for node.js by [Lovell Fuller](https://github.com/lovell). **Note**: bimg is still beta. Do not use in production yet @@ -653,3 +652,5 @@ type Watermark struct { ## License MIT - Tomas Aparicio + +[![views](https://sourcegraph.com/api/repos/github.com/h2non/bimg/.counters/views.svg)](https://sourcegraph.com/github.com/h2non/bimg) diff --git a/image.go b/image.go index fe0d777..85f0b6d 100644 --- a/image.go +++ b/image.go @@ -81,9 +81,10 @@ func (i *Image) Watermark(w Watermark) ([]byte, error) { return i.Process(options) } -// Zoom the image by the given factor -func (i *Image) Zoom(level int) ([]byte, error) { - options := Options{Zoom: level} +// Zoom the image by the given factor. +// You should probably call Extract() before +func (i *Image) Zoom(factor int) ([]byte, error) { + options := Options{Zoom: factor} return i.Process(options) } diff --git a/image_test.go b/image_test.go index cc8d8b6..29e3bd4 100644 --- a/image_test.go +++ b/image_test.go @@ -23,7 +23,7 @@ func TestImageResize(t *testing.T) { func TestImageExtract(t *testing.T) { buf, err := initImage("test.jpg").Extract(100, 100, 300, 300) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot process the image: %s", err) } err = assertSize(buf, 300, 300) @@ -51,7 +51,7 @@ func TestImageEnlarge(t *testing.T) { func TestImageCrop(t *testing.T) { buf, err := initImage("test.jpg").Crop(800, 600, NORTH) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot process the image: %s", err) } err = assertSize(buf, 800, 600) @@ -65,7 +65,7 @@ func TestImageCrop(t *testing.T) { func TestImageCropByWidth(t *testing.T) { buf, err := initImage("test.jpg").CropByWidth(600) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot process the image: %s", err) } err = assertSize(buf, 600, 375) @@ -79,7 +79,7 @@ func TestImageCropByWidth(t *testing.T) { func TestImageCropByHeight(t *testing.T) { buf, err := initImage("test.jpg").CropByHeight(300) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot process the image: %s", err) } err = assertSize(buf, 480, 300) @@ -93,7 +93,7 @@ func TestImageCropByHeight(t *testing.T) { func TestImageThumbnail(t *testing.T) { buf, err := initImage("test.jpg").Thumbnail(100) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot process the image: %s", err) } err = assertSize(buf, 100, 100) @@ -138,7 +138,7 @@ func TestImageWatermarkNoReplicate(t *testing.T) { image := initImage("test.jpg") _, err := image.Crop(800, 600, NORTH) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot process the image: %s", err) } buf, err := image.Watermark(Watermark{ @@ -166,12 +166,19 @@ func TestImageWatermarkNoReplicate(t *testing.T) { } func TestImageZoom(t *testing.T) { - buf, err := initImage("test.jpg").Zoom(1) + image := initImage("test.jpg") + + _, err := image.Extract(100, 100, 400, 300) if err != nil { - t.Errorf("Cannot process the image: %#v", err) + t.Errorf("Cannot extract the image: %s", err) + } + + buf, err := image.Zoom(1) + if err != nil { + t.Errorf("Cannot process the image: %s", err) } - err = assertSize(buf, 3360, 2100) + err = assertSize(buf, 800, 600) if err != nil { t.Error(err) }