混合App應用實現本地頭像剪下,壓縮上傳功能(支援任何H5框架)
頭像上傳是任何一個應用都會用到的功能,但是頭像的尺寸往往需要控制一下,這樣會有一個比較不錯的顯示效果,例如我們通常會控制使用者的頭像為正方形,這個切圓角邊的時候不會變形,顯示位置也很固定。
對於H5混合應用來講,我們就需要外掛做為支援, 今天來講一下我的解決方案, 此方案參考參考瞭如下幾個作者的程式碼,非常感謝這幾位作者的程式碼,解決了很大問題,但是存在小的issue,我修復了一下:
jeduan作者的外掛:
原生程式碼支援作者
folk的程式碼,做了小的更改和issue修復。
主要是對於頭像上傳固定於正方形切圖,並且可以縮放,保證使用者的顯示尺寸,有點類似於微信的頭像上傳!
安裝
cordova plugin add https://github.com/jiangbophd/cordova-plugin-crop
呼叫方法:
plugins.crop(function success (url) {
//新的url
}, function fail () {
}, 'local image url', {quality: 30})
頭像剪下後後返回一個新的url,我們預設顯示這個url即可。
壓縮上傳
混合應用是既存在JS程式碼,也存在native程式碼,所以壓縮上傳的方案有很多,可以native也可以JS。
這裡鑑於頭像只上傳一張,所以可以用H5的canvas進行壓縮處理。因為我們的頭像剪下的時候已經對頭像質量做了一個控制:
{quality: 30}
如果想進一步壓縮的話,可以用如下程式碼:
let image = new Image(),
canvas = document.createElement("canvas"),
ctx = canvas.getContext("2d"),
ext = image.src.substring(image.src.lastIndexOf(".") + 1).toLowerCase();
image.src = imgUrl;
canvas.width = image.width ;
canvas.height = image.height;
ctx.drawImage(image, 0, 0, image.width, image.height);
console.log(canvas.toDataURL("image/" + ext));
return canvas.toDataURL("image/" + ext);
最終圖片被轉換成base64編碼,伺服器就可以正常接收了!
相關推薦
混合App應用實現本地頭像剪下,壓縮上傳功能(支援任何H5框架)
頭像上傳是任何一個應用都會用到的功能,但是頭像的尺寸往往需要控制一下,這樣會有一個比較不錯的顯示效果,例如我們通常會控制使用者的頭像為正方形,這個切圓角邊的時候不會變形,顯示位置也很固定。 對於H5混合應用來講,我們就需要外掛做為支援, 今天來講一下我的解決方
Android實現本地視訊+錄製視訊+視訊壓縮上傳
今天研究了一下視訊上傳的處理,還包括研究可以視訊壓縮,本地視訊、錄製視訊上傳。本地視訊獲取需要適配手機,這個建議自己獲取本地視訊列表自己實現。不然就會出現路徑找不到返回 null 好東西都是要分享給大家的 有問題請留言評論。。。 視訊壓縮我用的是七牛的 ,我們圖片上傳的就是七牛,七牛的視
Django+jQuery cropper實現使用者頭像裁剪, 預覽和上傳[原創]
{% extends "account/base.html" %} {% load static %} {% block content %} {% if user.is_authenticated %} | <a href="{% url 'account_email' %}">Manage
Vue + Canvas 實現頭像截圖上傳功能(一)
此文共分為兩篇,上篇主要是展示最終的效果,下篇為程式碼實現部分。 首先,上圖看最終的製作效果。 這是選擇圖片前: 這是選擇圖片後: 主要需求有這幾點:
使用element的upload元件實現一個完整的檔案上傳功能(下)
本篇文章是《使用element的upload元件實現一個完整的檔案上傳功能(上)》的續篇。 話不多說,接著上一篇直接開始 一.功能完善—儲存表格中每一列的檔案列表狀態 1.思路 儲存表格中每一列的檔案列表狀態,這個功能是什麼意思呢,我們先看下前面示例的效果。
小程式購物車功能(支援手動輸入數量)以及側邊欄和列表欄聯動的實現
小組剛完成一個小程式專案,第一版正式釋出了,過程中也遇到了很多問題,這裡記錄一下我負責的模組中的購物車功能的實現過程。後期再把其他小夥伴的模組也一併貼上來分析一下,自己也學習一下他們的獨門技能!效果圖如下: 在這裡,計數器、購物籃做成元件用於複用,由於左右聯動的功能
【移動端實現】相機喚起及圖片上傳功能(包括微信)
前言 目前有個需求是圖片拍照上傳的功能,但是我就是死活掉不起相機。。。總是開啟的是檔案目錄OR上傳圖片。。。。而不是相機。。。 所以對比了下 程式碼: 參考了百度移動端實現方式。。。程式碼很簡單,對就這一句! <input type="file" acce
用ASP.NET的FileUpload控制元件實現帶對話方塊的FTP檔案上傳功能
最近不得已開始做網頁,一個ASP.NET的專案,需要實現FTP上傳功能,於是上網廣搜程式碼,發現FTP上傳的程式碼到處都是,隨手拈來,可是一般來說客戶端上傳檔案都需要一個檔案選擇對話方塊,正好自帶的FileUpload控制元件能夠實現。但是網上搜到FileUpl
在SpringBoot的環境下,寫上傳檔案的功能,結果沒有獲取到檔案的問題(ServletFileUpload中getItemIterator(request)為空)
在SpringBoot的環境下,寫上傳檔案的功能,結果沒有獲取到檔案的問題: 情況一: 使用Apache Commons FileUpload 元件上傳檔案時總是返回null,multipart/form-data型別檔案的接收。 <!DOCTYPE html>
Struts+Spring+Hibernate實現上傳下載(spring的最低框架配置,web.xml等)
引言 檔案的上傳和下載在J2EE程式設計已經是一個非常古老的話題了,也許您馬上就能掰著指頭數出好幾個著名的大件:如SmartUpload、Apache的FileUpload。但如果您的專案是構建在Struts+Spring+Hibernate(以下稱SSH)框架上的,這些大
react-native-image-picker在Android上閃退的解決辦法(上傳頭像base64,壓縮上傳圖片)
問題描述:最近做專案上傳頭像時用到了react-native-image-picker第三方庫,使用的是 base64格式 上傳,在以下配置的情況下,android點選選擇相簿會遇到閃退的問題,找到了
SSM框架下檔案的上傳下載(無內容時js彈窗提示)
SSM框架下檔案的上傳下載 非全部原創,僅用來記錄學習過的內容,自己添加了js判空彈窗的功能 1.首先我們建立一個測試用的jsp頁面,程式碼如下。 <%@ page language="java" contentType="text/html;
jquery擴充套件html5+canvas實現多張圖片 預覽 壓縮 上傳
主要javascript程式碼 (function($){ $.fn.extend({ aiiUpload:function(obj) { if(typeof obj !="object") { alert('引數錯誤'); retur
SpringMVC與layui搭配實現圖片上傳(根據日期建立對應資料夾,配置虛擬目錄,壓縮上傳,瀏覽器版本相容)
$(function() { /** * layui圖片上傳控制元件 */ layui.use(['upload','form', 'layer'], function() { var $ = layui.
JAVA 實現 QQ 郵箱發送驗證碼功能(不局限於框架)
package -o lda tor apach return stack proc pub JAVA 實現 QQ 郵箱發送驗證碼功能(不局限於框架) 本來想實現 QQ 登錄,有域名一直沒用過,還得備案,好麻煩,只能過幾天再更新啦。 先把實現的發送郵箱驗證碼更能更新了。 老
使用element的upload元件實現一個完整的檔案上傳功能(上)
說到標題就有點心塞了,前段時間專案上需要實現一個檔案上傳的功能,然後就咔咔的去用了element的upload元件,不用不知道一用嚇一跳哇。在使用的過程中遇到了很多讓意想不到的問題,後來也因為時間問題,沒有去仔細研究問題出現的根本原因,只是想辦法解決了問題。這些天有點空閒時間,脫離專案單獨實現了一
【Inline Hook應用篇】限制剪下板(針對檔案型別)
限制剪下板,主要是限制不允許貼上。我們對這兩個系統API進行掛鉤: GetClipboardData和OleGetClipboard //!<限制剪下板 InitHook("user32.dll", "GetClipboardData", (DWORD)hook
HTML5 APP應用實現圖片上傳及拍照上傳功能
HTMl5 APP手機端程式碼: <video id="myVideo" autoplay="autoplay"></video> <br /> <input type="button" value="拍照" />
jQuery實現複製到剪下板
前段時間需要做一個點選一個按鈕,把制定內容複製到剪下板的效果。 對於IE瀏覽器而言,有一簡單的方法,通過 window.clipboardData: (假如有一個id為copy的按鈕,有一個i
混合APP中實現合成帶引數二維碼的圖片並分享到微信
專案中遇到個需求,要把帶個人蔘數的二維碼的分享圖分享到微信,讓兩個使用者繫結。 這是分享之前的樣式,要用canvas把它做成一整張圖片,如果不是APP中是在微信會H5中可以進入頁面就製作,覆蓋在原圖上讓使用者長按圖片下載。 分享之前使用者可以自由搭配分享樣式,這是分享在微信中的樣子。