[英]appgyver steroids image handling post image from capture
我想知道是否有人嘗試使用類固醇應用程序拍攝圖像並將其通過api發布到后端?
我在他們自己的文檔中發現的關於圖像處理的唯一內容是如何捕獲圖像以及如何將它們保存為base64編碼,但是我如何使用base64編碼的圖像,是否可以通過api發布它們?
代碼示例:
$ scope.startCapture = function(){navigator.camera.getPicture(onSuccess,onFail,{quality:50,destinationType:Camera.DestinationType.DATA_URL}); }
function onSuccess(imageData) {
var image = document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
function onFail(message) {
alert('Failed because: ' + message);
}
我對您的環境不熟悉,希望我能正確理解您的問題,但是base64編碼的Image只不過是一個字符串。 您可以像使用物理圖像一樣使用它們,例如在樣式表中使用:
backround-image: url('data:image/jpeg;base64,AQFiEW=....');
要將此圖像通過HTTP請求發送到API,可以像下面的簡單示例(jQuery)一樣將值放在Request中。 確保將它們發布,GET無法處理無限數據長度(即使POST也不能,但可配置的最大2GB [在PHP中]),並且轉換為base64的圖像比原始圖像具有更多的數據(即5%-10%)
$.ajax({
url: '/api/action',
type: 'POST',
data: {'image': 'data:image/jpeg;base64,AQFiEW=....'}
}).done(function(msg){
alert("Image send");
}).error(function(msg){
alert("Image sending failed: " + msg);
});
我不能相信這一點,因為我確定我是從某個地方的Stack那里獲得此信息的。我想做一些不同的事情,但是我看到了您的問題,並想分享我的發現。 這在前端和NodeJS后端使用Supersonic設置(Steroids,Angular等):
`$ scope.takePhoto = function(){
var options = {
quality: 90,
allowEdit: true,
targetWidth: 600,
targetHeight: 1132,
encodingType: "jpg",
saveToPhotoAlbum: false,
destinationType: "dataURL"
};
supersonic.media.camera.takePicture(options).then(function(result) {
formData.append('file', result);
$http({
url: "http://YOURSERVER",
method: "POST",
transformRequest: angular.identity,
headers: {
'Content-Type': undefined
},
data: formData
})
.success(function(result) {
//further logic
supersonic.logger.info("Success!! Sent Photo ");
}).
error(function(data, status, headers, config) {
supersonic.logger.info("Failure! STATUS --- " + status);
supersonic.logger.info("Failure! DATA --- " + data);
});
});
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.