Viva,

Desde que falei no assunto que não mexi mais nesta área mas agora tive
mesmo de resolver e ficou a funcionar.
Eu fazia algumas tarefas após tirar a foto com a câmara nativa:
1 - Carregar a foto com o Loader que devolve um Bitmap;
2 - Redimensionar para um tamanho máximo o BitmapData caso o valor de
largura fosse superior a um pré-definido;
3 - Depois tentava descobrir a orientação da imagem através da técnica EXIF
(obrigado pela dica) mas sem sucesso.

O problema estava que no tratamento da imagem, a informação original do
JPEG perdia-se.

Primeiro é necessário executar a técnica EXIF sobre o bytearray original
(sem qualquer processamento de imagem) e guardar essa informação numa
variável e só depois seguir o passo 1 e depois o 2.
Depois verifico a orientação lida e se necessário, roda-se a imagem.

Uma melhoria será guardar a informação da orientação da imagem em cache e
só fazer essa leitura na primeira vez, pois ler os dados de um JPEG enorme,
requer bastante processamento, com a qualidade das câmaras de hoje em dia.


No dia 23 de março de 2017 às 09:53, Hugo Ferreira <[email protected]>
escreveu:

> Viva,
>
> Cheguei a tentar implemntar isso mas infelizmente que a implementação EXIF
> que encontrei não funciona.
> Se depois chegares a alguma conclusão, por favor diz.
>
> Obrigado,
> Hugo.
>
> No dia 20 de março de 2017 às 15:12, Hugo Ferreira <[email protected]
> > escreveu:
>
>> Viva,
>>
>> É isso mesmo !
>> Desconhecia o conceito "EXIF" e foi  primeira vez que utilizei a classe
>> CameraUI e tive de lidar com este tipo de problemas.
>> Pelo que estive a ler, isto é mesmo assim e não é um bug do AIR ou do
>> Flex.
>> Aguns modelos como o Samsung Galaxy S6 devolvem a foto com um ângulo
>> diferente e outros não.
>> Eu até já tinha o código feito para rodar (corrigir a rotação) da foto
>> porque pensava que só acontecia em iOS (acontece no meu iPad 3 mas não no
>> meu Huawei P9) mas ontem descobri que depende do modelo do device (também
>> acontece por exemplo no S6 e iPhone 7 Plus mas não no iPad Pro),
>> independentemente do OS e do runtime/SDK.
>>
>> Com essa "keyword", já consegui encontrar muita informação na net e irei
>> hoje testar com esta informação: http://stackoverfl
>> ow.com/questions/35657156/adobe-air-cameraui-photo-orientation/35664209
>> Se funcionar bem, basta usar o método de rotação que já tenho em função
>> dos graus que precisa de compensar (caso a foto não seja devolvida com
>> rotação).
>>
>> Não percebo porque é que não existe um standard.
>> Mais uma coisa para gastar processamento.
>>
>> Foste uma grade ajuda.
>>
>> Obrigado,
>> Hugo.
>>
>>
>>
>>
>>
>>
>>
>>
>> No dia 20 de março de 2017 às 14:34, Rui Cruz <[email protected]>
>> escreveu:
>>
>>> Viva,
>>>
>>> Penso que tens de ler a orientação no exif da foto.. em breve irei mexer
>>> com isso intensamente, mas para já só tenho de lidar com esse problema em
>>> desktop.
>>>
>>> tens aqui um bom tutorial: http://www.daveperre
>>> tt.com/articles/2012/07/28/exif-orientation-handling-is-a-ghetto/
>>>
>>> Cumprimentos
>>>
>>> No dia 20 de março de 2017 às 11:37, Hugo Ferreira <
>>> [email protected]> escreveu:
>>>
>>>> Bom dia,
>>>>
>>>> Já aqui alguém usou a CameraUI existente na framework Flex para mobile ?
>>>> Não tiveram problemas com a orientação da imagens em modelos diferentes
>>>> de devices ?
>>>>
>>>>
>>>> Cumprimentos,
>>>> Hugo.
>>>>
>>>> --
>>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org"
>>>> do Grupos do Google.
>>>> Para anular a subscrição deste grupo e parar de receber emails do
>>>> mesmo, envie um email para [email protected].
>>>> Para publicar uma mensagem neste grupo, envie um email para
>>>> [email protected].
>>>> Visite este grupo em https://groups.google.com/group/riapt.
>>>> Para mais opções, visite https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> Recebeu esta mensagem porque subscreveu ao grupo "Mailing List da
>>> Comunidade Portuguesa de Rich Internet Applications - www.riapt.org" do
>>> Grupos do Google.
>>> Para anular a subscrição deste grupo e parar de receber emails do mesmo,
>>> envie um email para [email protected].
>>> Para publicar uma mensagem neste grupo, envie um email para
>>> [email protected].
>>> Visite este grupo em https://groups.google.com/group/riapt.
>>> Para mais opções, visite https://groups.google.com/d/optout.
>>>
>>
>>
>

-- 
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie 
um email para [email protected].
Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Visite este grupo em https://groups.google.com/group/riapt.
Para mais opções, consulte https://groups.google.com/d/optout.

Responder a