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