Я хотел бы изменить размер изображения, выбранного в галерее.Я установил targetHeight
и targetWidth
, но они, кажется, игнорируются ...
При выборе изображения с камеры настройка allowEdit
дает мне возможность обрезать изображение, ноне когда картинка из галереи.
Я пробовал некоторые плагины Crop, но они не соответствуют моим потребностям или я не могу реализовать их на ionic V1.
у меня есть представление о том, что я могу изменить в своем коде, чтобы при выборе из галереи иметь квадратное изображение размером 200 на 200 пикселей?
// source_type is either 'camera' or 'gallery'
$scope.takePicture = function(source_type)
{
navigator.camera.getPicture(
function(uri){
$ionicPopup.alert({
title: 'New avatar',
template: 'Is uploading...'
});
// Create a root reference
var storageRef = firebase.storage().ref();
var newAvatar = "test.jpg";
var contentType = contentType || '';
var sliceSize = sliceSize || 512;
let byteCharacters = atob(uri);
let byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize)
{
let slice = byteCharacters.slice(offset, offset + sliceSize);
let byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++)
{
byteNumbers[i] = slice.charCodeAt(i);
}
let byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
var mountainImagesRef = storageRef.child("storage/pics/"+newAvatar);
var blob = new Blob(byteArrays);
mountainImagesRef.put(blob).then(function(snapshot)
{
console.log("Uploaded a base64 string!");
$scope.addNewAvatar(newAvatar);
});
},
function(){
$ionicPopup.alert({
title: 'Erreur',
template: 'Error'
});
},
{
quality: 70,
targetHeight: 200,
allowEdit: true,
targetWidth: 200,
destinationType: 0,
sourceType: source_type === 'gallery' ? 0 : 1,
mediaType: 0,
saveToPhotoAlbum: false
}
);
};