我想知道是否有人试图使用类固醇应用程序拍摄图像并通过api将其发布到后端?
我在他们自己的文档中发现的关于图像处理的唯一事情是如何捕获图像以及如何将它们保存在base64编码中,但是我如何使用base64编码图像并且是否可以通过api发布它们?
代码示例:
$ scope.startCapture = function(){ navigator.camera.getPicture(onSuccess,onFail,{ 质量: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);
}
答案 0 :(得分:0)
我不熟悉您的环境,希望我能正确理解您的问题,但base64编码的Image只不过是一个字符串。您可以像使用物理图像一样使用它们,例如在样式表中:
backround-image: url('data:image/jpeg;base64,AQFiEW=....');
要通过HTTP-Request将此Image发送到API,您可以将值放在Request中,如下面的简单示例(jQuery)中所示。确保你发布它们,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);
});
答案 1 :(得分:0)
我不能相信这一点,因为我确信我从Stack得到了这个信息...我想做一些与众不同的事情,但我看到了你的问题,并认为我会分享我找到的东西。这使用了前端的超音速设置(Steroids,Angular等)和NodeJS后端:
`$ 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);
});
});
};