Апгайвер стероиды

Интересно, есть ли кто-нибудь, кто пытался сделать снимок с помощью приложения стероидов и опубликовать его в бэкэнд через 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);
    }

2 ответа

Я не могу взять кредит на себя, потому что я уверен, что где-то получил эту информацию от Стека... Я собираюсь сделать что-то другое, но я увидел твой вопрос и решил, что поделюсь тем, что нашел. При этом используется сверхзвуковая настройка (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);

    });



});

};

Я не знаком с вашей средой и надеюсь, что правильно понимаю вашу проблему, но изображение в кодировке base64 - не более чем строка. Вы можете использовать их как физическое изображение, то есть в таблице стилей, например так:

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

Чтобы отправить это изображение через HTTP-запрос к API, вы можете поместить значение в запрос, как в следующем простом примере (jQuery). Убедитесь, что вы их POST, GET не может обрабатывать бесконечную длину данных (POST не может даже, но его можно настроить до 2 ГБ [в 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);
});
Другие вопросы по тегам