Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 70433

How to resize image on iOS before uploade to server

$
0
0

@FriendsChallenge wrote:

How can I modify the size of an image on iOS before upload to server?

For android I used the “targetWidth”-Option of getPicture-Function in ionic-native/camera. Unfortunately it does not work on iOS. Cordova documentation: “On iOS passing PictureSourceType.PHOTOLIBRARY or PictureSourceType.SAVEDPHOTOALBUM along with DestinationType.NATIVE_URI will disable any image modifications (resize, quality change, cropping, etc.) due to implementation specific.”

import { Camera } from '@ionic-native/camera';

....

public takePicture(sourceType, task) {
    // Create options for the Camera Dialog
    var options = {
      quality: 50,
      targetWidth: 150,
      sourceType: sourceType,
      saveToPhotoAlbum: false,
      correctOrientation: true
    };

    // Get the data of an image
    this.camera.getPicture(options).then((imagePath) => {
      // Special handling for Android library
      if (this.platform.is('android') && sourceType === this.camera.PictureSourceType.PHOTOLIBRARY) {
        this.filePath.resolveNativePath(imagePath)
          .then(filePath => {
            let correctPath = filePath.substr(0, filePath.lastIndexOf('/') + 1);
            let currentName = imagePath.substring(imagePath.lastIndexOf('/') + 1, imagePath.lastIndexOf('?'));
            this.copyFileToLocalDir(correctPath, currentName, this.createFileName())
              .then(newFileName => {
                if (newFileName == 'Error while storing file.') {
                  this.loading.dismissAll();
                  this.presentToast('Error while uploading file.');
                } else {
                  this.uploadImage(task)
                }
          });
          });
      } else {
        var currentName = imagePath.substr(imagePath.lastIndexOf('/') + 1);
        var correctPath = imagePath.substr(0, imagePath.lastIndexOf('/') + 1);
        this.copyFileToLocalDir(correctPath, currentName, this.createFileName()).then(newFileName => {
          if (newFileName == 'Error while storing file.') {
            this.loading.dismissAll();
            this.presentToast('Error while uploading file.');
          } else {
            this.uploadImage(task)
          }
        });
      }

    }, (err) => {
      this.presentToast('Error while selecting image.');
    });
  }

Posts: 1

Participants: 1

Read full topic


Viewing all articles
Browse latest Browse all 70433

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>