[firebase-br] (sem assunto)

Mário Reis mariodosreyx em gmail.com
Quinta Junho 23 17:30:22 -03 2022


Olá Obrigado pela resposta. Eu penso que o autor se enganou no exemplo.
Pegando no Ztree-win fui ver e realmente o JPG é  FFD8FF em hexa mas já o
BMP 42 4D 0E /BM (BMv etc..)
mas  vai depender de se mais antigo ou mais recente, 42 4D 36 /BM6 também o
PNG o GIF etc: a lista a seguir é que vai mandar
*https://en.wikipedia.org/wiki/List_of_file_signatures
<https://en.wikipedia.org/wiki/List_of_file_signatures>*
Eu não posso confiar nos Users! A apanho com tudo, até casos de
renomearem um BMP e um GIF como JPG.
Ora como não uso o TDBImage (o do Lazarus é um pouco melhor, que do
delphi), mas enfermam ambos do mesmo vício!!!
Há anos que o EDBIMAGE, Freeware do Sebastián Mayorá - Argentina -
DelphiHelper em yahoo.com.ar e vários outros autores, que agora a
Embacadero açambarcou-o (só o baixa quem for registered user! Enfim! )
Parece muito bem  feito mas que aceita/suporta um nunca mais acabar de
tipos de imagem diferentes; não há bela sem senão!
Só que em aplicações concorrentes me causa problemas porque supostamente só
lá deveriam estar JPG autênticos.
*Voltando ao que realmente importa*!
E, a única forma de garantir que não terei falsos JPG, não será pela
extensão, eu já estou a filtrar a extensão, ajuda, mas como já se viu, só
pela assinatura no header do ficheiro, vou garantir que não terei um BMP
renomeado de JPG a assinatura lá dentro será sempre BMP e vice-versa.
Ainda não percebi, exactamente, como vou fazer isso sem danificar nada;
pois o falsos JPG que lá estão todos para identificar e salvar como JPG.
Na net até agora não encontrei nada a ler o header de uma imagem por isso
está mais dificil !
Se alguém tiver alguma ideia agradeço. Obrigado


Com os meus melhores cumprimentos
Mário Agostinho Reis
919262146

Esta mensagem contém informação de natureza confidencial e é
exclusivamente dirigida ao(s) destinatário(s) indicado(s). Se, por engano,
receber este email agradecemos que não o copie nem o reenvie e que nos
notifique do ocorrido através do email de resposta.


Carlos H. Cantu via lista <lista em firebase.com.br> escreveu no dia quinta,
23/06/2022 à(s) 18:06:

> O código que vc postou (do Oracle) tenta identificar o tipo de imagem
> olhando
> alguns bytes no header do arquivo da imagem armazenada. Eu acho que esse
> código
> está furado, visto que o substr está pegando 1 byte e a comparação é com 3
> bytes! Provavelmente o correto seria substr(product_image,1,3)...
>
> Mesmo que funcione, esse código só identificaria JPG, não funcionando para
> outros formatos de imagem. Sugiro que siga a ideia do Helio e armazene a
> extensão.
>
> PS: Coloque assunto nos emails enviados para a lista.
>
> []s
> Carlos H. Cantu
> eBook Guia de Migração para o FB 4 - www.firebase.com.br/guiafb4.php
> www.FireBase.com.br - www.firebirdnews.org - blog.firebase.com.br
>
> MRvl> Prezados companheiros,
> MRvl> Estou um tanto aflito tenho um campo blob com imagens do mais
> variado tipo
> MRvl> BMP, JPEG, PNG etcc E, claro que assim não é facil quero uniformizar
> tudo
> MRvl> como JPG
> MRvl> No oracle faz-se assim :
> MRvl>
> https://community.oracle.com/tech/developers/discussion/4195958/check-what-type-of-image-a-blob-is
>
> MRvl> Here is a basic example:
>
> MRvl> Extract the first 3 bytes from the BLOB and compare it with 'FFD8FF'.
> MRvl> According to the list of signatures in the link that Mike posted,
> this is
> MRvl> then a JPG:
>
> MRvl> select case when dbms_lob.substr(product_image,3,1) =
> MRvl> hextoraw('FFD8FF') then 'JPG' end as image_type from demo_prod
>
> MRvl> No firebird não sei se tenho chance. Não encontrei nada semelhante
> MRvl> Alguém pode ajudar?
> MRvl> Obrigado
> MRvl> Com os meus melhores cumprimentos
> MRvl> Mário Agostinho Reis
> MRvl> 919262146
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas:
> http://www.firebase.com.br/pesquisa_lista.html
>


Mais detalhes sobre a lista de discussão lista