0

画像の幅と高さを 1:3 の比率で検証する必要があります。ng-file-upload を使用して画像をアップロードしています。サーバーに送信する前に検証を行う必要があります。

選択した画像から画像の幅/高さを取得する方法がわかりません。誰か助けてくれませんか?

このサイトのチュートリアルに従っています: http://odetocode.com/blogs/scott/archive/2013/07/03/building-a-filereader-service-for-angularjs-the-service.aspx

4

3 に答える 3

1

それはプラグインの機能要求になります。回避策として、これを行うことができます:

<div ngf-select ngf-model="image" ngf-validate-fn-async="validateRatio(image)" ngf-pattern="'image/*'" accept="image/*" >

$scope.validateRatio = function(image) {
  var defer = $q.defer();
  Upload.imageDimensions(image).then(function(d) {
    if (d.width / d.height === expectedRatio) {
      defer.resolve()
    } else {
      defer.reject();
    }
  }, function() {defer.reject();});
  return defer.promise;
}

また

<div ngf-select ngf-model="image" ngf-pattern="'image/*'" ngf-min-height="0" accept="image/*" >
<div ng-show="image.width && (image.width / image.height !== expectedRatio)">Invalid ratio?

編集 機能が追加されました

<div ngf-select ngf-model="image" ngf-ratio="1x3" ngf-pattern="'image/*'" accept="image/*" > 
于 2015-09-01T17:09:05.817 に答える
0
    var image = angular.element('<CLASS_NAME or ID_NAME>');
    $scope.width = image.width();
    $scope.height = image.height();

これがあなたに役立つことを願っています!.

于 2016-05-23T13:28:51.567 に答える
0

ファイルをアップロードしたら、DOM 要素に ID を割り当てていますか? その場合、プレーン JS は次のように機能します。

var img = document.getElementById('imageid'); 

var width = img.clientWidth;
var height = img.clientHeight;
于 2015-09-01T13:24:22.917 に答える