首页 web前端 js教程 ionic本地相册、拍照、裁剪、上传技巧分享

ionic本地相册、拍照、裁剪、上传技巧分享

Jan 25, 2018 pm 01:03 PM
ionic 拍照 裁剪

网络上已有的ionic图片选择上传博客碎片化过于严重,功能残缺或者引入了一些不必要的插件。这次以项目为契机,把ionic的图片选择、裁剪、上传整合一下,多图上传请戳ionic选择多张图片上传。本文主要介绍了ionic本地相册、拍照、裁剪、上传(单图完全版),非常具有实用价值,需要的朋友可以参考下,希望能帮助到大家。

插件安装


cordova plugin add cordova-plugin-camera //用于通过相机、相册选择图片并完成裁剪
cordova plugin add cordova-plugin-file-transfer //用于上传图片到服务器
登录后复制

将功能封装为服务


angular.module('starter.services', [])

//文件上传
.factory('UploadFile', function(Toast) {
 return {
 /**
  * 上传文件到服务器
  *
  * @param fileUrl 文件路径
  * @param server 服务器接口
  */
 uploadFile: function(fileUrl, server) {
  document.addEventListener("deviceready", onDeviceReady, false);
  function onDeviceReady() {
  var options = new FileUploadOptions();
  options.fileKey = "BeanYon";
  options.fileName = fileUrl.substr(fileUrl.lastIndexOf('/') + 1);
  options.mimeType = "image/jpeg";
  options.chunkedMode = false;

  var params = {account: localStorage.account};
  options.params = params;

  var ft = new FileTransfer();
  ft.upload(fileUrl, 
     encodeURI(server), 
     success, 
     err, 
     options);
  }

  function success(r){
  Toast.show("设置头像成功");
  }

  function err(error){
  Toast.show("上传头像失败,请确保网络正常后再试");
  }
 }
 }
})

//配置单张图片选择
.factory('SelectPicture', function(UploadFile, Toast) {
 return {
 /**
  * 从相机或图库选择一张图片
  * 
  * @param type 选择类型,0 拍照,1 相册
  * @param width 目标宽度
  * @param height 目标高度
  * @param scope $scope对象
  */
 chooseSinglePicture: function(type, width, height, scope) {
  document.addEventListener("deviceready", onDeviceReady, false);
  function onDeviceReady() {
  var options = {//相机配置
   targetWidth: width,
   targetHeight: height,
   quality: 100,
   allowEdit: true
  }

  if(type == 1){//图片源设置为相册
   options.sourceType = 2;
  }

  navigator.camera.getPicture(
   function(res){
   scope.avatar_src = res;
   scope.$apply();
   localStorage.avatar = res;
   UploadFile.uploadFile(res, "我的服务器地址");//传递自己的服务器接口地址
   }, function(res){
   Toast.show("选择头像失败");
   }, options
  );
  }
 },

 /**
  * 从图库选择多张图片
  */
 choosePictures: function() {
  window.imagePicker.getPictures(function(res){
  alert(res+",success");
  }, function(res){
  alert(res+",failed");
  }, {
  maximumImagesCount: 10, 
  width: 80, 
  height: 80, 
  quality: 80 
  });
 }
 }
});
登录后复制

调用服务


angular.module('starter.controllers', [])
.controller('MyCtrl', function($scope, $state, $ionicActionSheet, UploadFile,Toast, SelectPicture) {
 $scope.avatar_src = "img/default_avatar.jpg";

 /**
 *选择头像
 */
 $scope.selectAvatar = function(){
 // 显示操作表
 $ionicActionSheet.show({
  buttons: [
  { text: &#39;<p style="font-size: 18px;">拍照<p>&#39; },
  { text: &#39;<p style="font-size: 18px;">从相册选择<p>&#39; },
  ],
  buttonClicked: function(index) {
  //设置头像
  SelectPicture.chooseSinglePicture(index, 120, 120, $scope);
  return true;
  }
 });
 }
})
登录后复制

相关推荐:

ionic多图上传的示例代码分享

ionic3和Angular4实现接口请求及本地json文件读取

使用ionic实现通讯录界面切换实例代码

以上是ionic本地相册、拍照、裁剪、上传技巧分享的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

我如何裁剪HTML中的IFrame? 我如何裁剪HTML中的IFrame? Aug 29, 2023 pm 04:33 PM

内联框架在HTML中称为iframe。标签指定内容中的一个矩形区域,浏览器可以在其中显示带有滚动条和边框的不同文档。要在当前HTML文档中嵌入另一个文档,请使用内联框架。可以使用HTMLiframe名称属性指定元素的引用。在JavaScript中,对元素的引用也是使用name属性进行的。iframe本质上用于在当前显示的网页中显示网页。包含iframe的文档的URL使用“src”属性指定。语法以下是HTML的语法<iframesrc="URL"title="d

小米14怎么设置拍照水印? 小米14怎么设置拍照水印? Mar 18, 2024 am 11:00 AM

为了让拍摄出的照片更具个性和独特性,小米14提供了拍照水印设置。通过设置拍照水印,用户可以在拍摄的照片上添加图案、文字和标志,使得每一张照片都能更好地记录下珍贵的时刻和回忆。接下来,我们将介绍如何在小米14中设置拍照水印,让您的照片更加个性化和生动。小米14怎么设置拍照水印?1、首先点击“相机”。2、然后点击“设置”。3、接着找到水印,随后就可以开始拍摄了。

iPhone拍烟花模式火了!原相机这样设置出片刷爆朋友圈 iPhone拍烟花模式火了!原相机这样设置出片刷爆朋友圈 Feb 12, 2024 pm 07:00 PM

2月9日消息,爆竹声声,烟花绽放,祝大家除夕快乐。又到了放烟花的时候,很多人都会掏出手机拍几张照片分享到朋友圈,如果你用的是国产智能机,拍照基本都会有AI优化,让烟花效果更出众。手持iPhone的用户如何拍出烟花大片呢?今晚,词条#iPhone拍烟花模式#登上微博热搜榜,引来很多网友围观。其实,所谓的iPhone“烟花模式”就是在视频模式下同时拍摄照片。首先,打开iPhone自带的相机,切换到“视频”模式,点击右上角参数,将分辨率调整为4K、帧数调至60fp

苹果13拍照不清晰怎么回事「最新iPhone拍照模糊解决方法」 苹果13拍照不清晰怎么回事「最新iPhone拍照模糊解决方法」 Feb 06, 2024 pm 10:46 PM

为拍摄对象设置好焦距焦距设置不当是照片模糊的常见原因之一,也会受到光线影响。大多数人通常使用自动聚焦拍摄,效果通常还不错。然而,自动聚焦有时会令人失望,导致类似以上照片的图像。为了获得最佳效果,你可以在iPhone自带相机应用中触按屏幕进行手动焦距设置。充足的光线充足的光线不仅可以让你获得更加清晰的照片,也会提高照片的质感,无论是拍摄风景还是人像,都应该保证iPhone镜头下的充足光线,当快门开启时间越长,动作可能越多也就会导致模糊,一般场景选择在室内光线充足的地方或者是室外自然光充足的地方进行

激萌拍照怎么去水印呢?faceu激萌拍照水印关闭教程! 激萌拍照怎么去水印呢?faceu激萌拍照水印关闭教程! Mar 15, 2024 pm 08:20 PM

一、激萌拍照怎么去水印呢?faceu激萌拍照水印关闭教程!1.打开手机里的Faceu激萌APP,点击拍摄图标。2.进入拍摄界面后,选择三点图标。3.然后在弹出的面板中,点击相机设置。4.跳转页面后,选择水印设置。5.最后在水印设置页面,点击关闭水印即可。

photoshop怎么把歪的图片裁剪成正的?ps裁剪倾斜照片教程 photoshop怎么把歪的图片裁剪成正的?ps裁剪倾斜照片教程 Mar 25, 2024 pm 10:07 PM

  有些用户发现图片上的某些东西是歪的,没办法直接框选裁剪,想知道有没有什么方法可以把图片上的东西摆正呢?其实这个操作对于ps高手来说非常简单,这里小编给ps小白用户讲讲photoshop把歪的图片裁剪成正的,这个方法很容易操作,希望能帮到大家。  ps裁剪倾斜照片教程  1、打开Photoshop,鼠标移至左侧的裁剪工具,然后点鼠标右键,选择“透视剪切工具”。  2、选择需要摆正的图片,确定好四个点。  3、然后按下回车键,即可成功地摆正。  4、这样一来照片上的东西就变正了,而

iOS 17:如何在照片中使用一键裁剪 iOS 17:如何在照片中使用一键裁剪 Sep 20, 2023 pm 08:45 PM

借助iOS17照片应用,Apple可以更轻松地根据您的规格裁剪照片。继续阅读以了解如何操作。以前在iOS16中,在“照片”应用程序中裁剪图像涉及几个步骤:点击编辑界面,选择裁剪工具,然后通过捏合缩放手势或拖动裁剪工具的角来调整裁剪。在iOS17中,值得庆幸的是,苹果简化了这个过程,这样当你放大照片库中任何选定的照片时,一个新的“裁剪”按钮会自动出现在屏幕的右上角。点击它会弹出完整的裁剪界面,其中包含您选择的缩放级别,因此您可以裁剪到您喜欢的图像部分,旋转图像,反转图像,或应用屏幕比例,或使用标记

如何在uniapp中实现相机拍照功能 如何在uniapp中实现相机拍照功能 Jul 04, 2023 am 09:40 AM

如何在uniapp中实现相机拍照功能现在的手机功能越来越强大,几乎每个手机都配备了高像素的相机。在UniApp中实现相机拍照功能,可以为你的应用程序增添更多的交互性和丰富性。本文将针对UniApp,介绍如何使用uni-app插件来实现相机拍照功能,并提供代码示例供参考。一、安装uni-app插件首先,我们需要安装一个uni-app的插件,该插件可以方便地在u

See all articles