Ir para conteúdo
Fórum Script Brasil

toramau

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre toramau

toramau's Achievements

0

Reputação

  1. Oi pessoal. Estou iniciando meu aprendizado em javascript. Todos encontram a mesma dificuldade que eu. A internet oferece muitos cursos gratuitos - no youtube principalmente - mas todos ensinam os conceitos básicos e não se aprofundam a uma explicação mais aprofundada do assunto. O que nos leva sempre a um conhecimento superficial. Inclusive em cursos presenciais aqui na minha cidade é a mesma coisa. Não se ganha embasamento para compreender o conteúdo e a nomenclatura didática na internet. Este código abaixo serve para identificar a orientação de uma foto a partir de um input do tipo file. Quando implementei ele e tentei ajustá-lo a partir de um arquivo image não consegui obter sucesso. Gostaria que alguém dissecasse este código de maneira a dar uma comprensão geral. Eu sou do tipo que gosta de fazer sozinho por meio de testes pois acredito que seja o melhor caminho para o aprendizado de um programador. Contudo, existem momentos que não conseguimos resposta em lugar algum. Seria de muita utilidade uma explicação detalhada sem me oferecer a solução direto pois eu teria avanço ao invés de um serviço entregue. Caso não seja possível, espero que entendam qual é o problema e me sugiram outra solução. Desde já, agradeço. <input id='input' type='file' src="recomendacoes.jpg" /> <script type="text/javascript"> function getOrientation(file, callback){ var reader = new FileReader(); // Object FileReader reader.onload = function(e){ // alert(document.getElementById('fotoB')); // Object HTMLImageElement to DataView var view = new DataView(e.target.result); // Object DataView alert(e.target.result); // Object FileReader() if (view.getUint16(0, false) != 0xFFD8) return callback(-2); var length = view.byteLength, offset = 2; while (offset < length) { var marker = view.getUint16(offset, false); offset += 2; if (marker == 0xFFE1){ if (view.getUint32(offset += 2, false) != 0x45786966) return callback(-1); var little = view.getUint16(offset += 6, false) == 0x4949; offset += view.getUint32(offset + 4, little); var tags = view.getUint16(offset, little); offset += 2; /* incrementa */ for (var i = 0; i < tags; i++) if (view.getUint16(offset + (i * 12), little) == 0x0112) return callback(view.getUint16(offset + (i * 12) + 8, little)); } else if ((marker & 0xFF00) != 0xFF00) break; else offset += view.getUint16(offset, false); } /* fim do while */ return callback(-1); }; /* fim da função function(e) */ reader.readAsArrayBuffer(file); // reader.readAsDataUrl(file); } /* fim da função getOrientation() */ var entrada = document.getElementById('input'); // [Object HTMLInputElement] to [Object DataView] entrada.onchange = function(e){ //onchange getOrientation( entrada.files[0], function(orientation) { alert('Orientção: ' + orientation); } ); } </script>
×
×
  • Criar Novo...