0

我想知道是否有人尝试使用类固醇应用程序拍摄图像并通过 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);
    }
4

2 回答 2

0

我不能对此表示赞赏,因为我确定我从某个地方的 Stack 获得了这些信息......我想做一些不同的事情,但我看到了你的问题,并想我会分享我发现的东西。这在前端和 NodeJS 后端使用 Supersonic 设置(类固醇、Angular 等):

`$scope.takePhoto = 函数(){

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);

    });



});

};

于 2015-09-17T05:52:37.543 回答
0

我不熟悉您的环境,希望我能正确理解您的问题,但是 base64 编码的图像只不过是一个字符串。您可以像使用物理图像一样使用它们,即在这样的样式表中:

backround-image: url('data:image/jpeg;base64,AQFiEW=....');

要通过 HTTP 请求将此图像发送到 API,您可以将值放入请求中,如下面的简单示例 (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);
});
于 2015-08-07T09:30:04.560 回答