Skip to content

Mischi/angularjs-imageupload-directive

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Demo AngularJS imageupload Directive

Description

imageupload Directive for AngularJS

heavly inspired from http://www.rubydesigner.com/blog/resizing-images-before-upload-using-html5-canvas.

Usage

Single image

<input type="file" accept="image/*" image="image"/>
<img ng-show="image" ng-src="{{image.url}}" type="{{image.file.type}}" />

The image object has the following properties:

  • file
  • url
  • dataURL

Single image with resizing

<input type="file" accept="image/*" image="image2"
    resize-max-height="300"
    resize-max-width="250"
    resize-quality="0.7" />
Original <img ng-show="image2" ng-src="{{image2.url}}" type="{{image2.file.type}}" />
Resized <img ng-show="image2" ng-src="{{image2.resized.dataURL}}" />

The image object has the following properties:

  • file
  • url
  • dataURL
  • resized
    • dataURL
    • type

Multiple images with resizing

<input type="file" accept="image/*" multiple
    image="images"
    resize-max-height="300"
    resize-max-width="250"
    resize-quality="0.7" />
Originals <img ng-repeat="img in images" ng-src="{{img.url}}" type="{{img.file.type}}" />
Resized <img ng-repeat="img in images" ng-src="{{img.resized.dataURL}}" />

When used with multiple the image object is always an array of objects with the following properties:

  • file
  • url
  • dataURL
  • resized
    • dataURL
    • type

See demo.html for more concrete examples.

Optional Parameter:

  • resize-quality (default is 0.7)
  • resize-type (default is 'image/jpg')
  • resize-max-height (default is 300)
  • resize-max-width (default is 250)

Features

  • Upload Image with FileReader
  • Resize Image via canvas
  • Send Image Data URL (base64) to whatever you want.

How to run the Demo?

git clone https://github.com/Mischi/angularjs-imageupload-directive.git
cd angularjs-imageupload-directive
npm install

node app.js
open http://localhost:8080

Depends on

  • angular-1.1.4

Tested in following browsers:

Testimage: 4320x3240 4.22 MB, Resized (70% jpg): 320x270

  • Chrome 24 (Windows 8), Size: 9.3 KB
  • Chrome Canary 27 (Windows 8), Size: 9.3 KB
  • Firefox 18 (Windows 8), Size: 23.5 KB
  • Internet Explorer 10 (Windows 8), Size: 9.06 KB

Known Issues

  • filesize can vary from Browser to Browser.

TODO's

  • Use NgModelController instead of image attribute
  • Create bower compatible repository (component.json, tags, etc.)
  • Match angular-component-spec when it becomes available
  • Clear image property when Form has been reset
  • Create Unit Tests

About

AngularJS imageupload-Directive Demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published