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.
Pergunta
toramau
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>
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.