Jump to content
jviana

Conversor de Imagens

Recommended Posts

softklin

Do pouco que testei, só ao redimensionar a janela, os controlos ficam todos no mesmo sítio. De resto, testei a conversão para jpeg e gif, e converteu bem, sem erros. Vou ver se faço uns testes mais rigorosos quando tiver mais tempo.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
ribeiro55

Só ao final do dia é que posso correr uns testes, mais porque o ambiente em que me encontro tem a .NET framework 3.5 instalada.

Procura baixar a target framework quando não utilizas nenhuma referência das versões superiores pois não faz sentido exigir FW4 numa aplicação que está a utilizar na melhor das hipóteses FW2.

Usas a class Encoder, outra coisa, ou não queres contar? ;)


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
jviana

Boa, informação nova!

O que é o class Encoder?

Cumps. J.Viana


Learning

  • VB.Net
  • HTML
  • C/C++

Share this post


Link to post
Share on other sites
ribeiro55

Se não usas um compressor, as tuas imagens "JPG" ficam tão "pequenas" como um mapa de bits.

Vê o encoding como um co-dec. Um "coador" por  onde determinada informação é codificada e descodificada, num código próprio de maneira a identificar as redundâncias e reduzir o espaço ocupado.

Por outras palavras, é o que te permite ter imagens com alguns milhões de pixels em pouco mais de 500kB de informação.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
jviana

Então, deixa ver se percebi, comprimo a imagem para a PictureBox e depois não a descomprimo, logo quando gravo ficam... do tamanho que estavam na Picture Box?

Só tenho mais umas perguntas:

... como um mapa de bits.?

O que é um mapa de Bits

...Vê o encoding como um co-dec.

O que é um enconding, o que é um co-dec?

PS: Desculpem lá estas perguntas um pouco... ignorantes

Cumps. J.Viana


Learning

  • VB.Net
  • HTML
  • C/C++

Share this post


Link to post
Share on other sites
ribeiro55

Quando me refiro a mapas de bits, no mundo Windows, estou-me a referir directamente ao formato BMP.

Quando falo em tamanho, refiro-me ao espaço ocupado por a informação que compõe a imagem, e não as suas dimensões.

Eu dei-te uma forma de veres um co-dec (ou codec), mas vou-te dar a simplificada: É um algoritmo que permite ler e gravar determinados formatos, neste caso de imagem.

São essas formas de codificar e descodificar a informação que te permitem grandes quantidades de informação em pouco espaço, tal como a diferença entre um BMP e um JPG.

A picturebox não comprime nem descomprime nada. Limita-se a mostrar a representação de uma matriz de pixels, previamente descodificados por os respectivos codecs, que acontece por exemplo ao carregares um JPG para uma picturebox.

Eu quando chegar a casa experimento, mas por agora podes fazer a seguinte experiência:

Escolhe um JPG que para aí tenhas, grande (de máquina fotográfica ou isso), até pode ser esse do cãozinho que aí tens.

Vê nas propriedades do JPG qual é o tamanho (o espaço ocupado).

Com a tua aplicação, converte esse JPG para JPG e grava.

Compara o tamanho e mostra aqui os resultados.

Logo te digo se utilizas um codec JPEG ou não.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
jviana

Ok, fiz as comparações:

Input:

JPG - 1.80 MB

OutPut

JPG - 1.80 MB

GIF - 996 KB

PNG - 8,13 MB

TIFF - 10,9 MB

BMP - 11 MB

Comparações:

As jpg não mudaram o tamanho;

A jpg comparada com as outras é muito mais pequena, excepto com a GIf (será por sei um...video?)

Cumps. J.Viana


Learning

  • VB.Net
  • HTML
  • C/C++

Share this post


Link to post
Share on other sites
ribeiro55

Se JPG gravando para JPG fica igual ao input, estás a usar um compressor JPG, à partida.

JPG é mais pequena porque é um excelente codec, e por essa razão é o mais utilizado para brincar com imagens.

GIF é ainda mais pequeno porque tem uma palete de cor muito limitada. Se abrires a imagem vais reparar que está um nojo no que toca a cores intermédias.

As restantes estão normais, excepto talvez ali PNG.

Experimenta passar de BMP para JPG com a tua aplicação para determinar se volta a "encolher" para 1.8 ou se mantém.

Só para tirar a dúvida se foi processada por ser JPG->JPG ou não.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
jviana

Passo de JPG para PNG e depois de PNG para JPG

JPG -> PNG -> JPG

1.80MB -> 8,13 MB -> 471 KB

Comparação:

Encolhei, até demais

Cumps. J.Viana

EDIT:

A imagem está com a qualidade normal

Cumps. J.Viana


Learning

  • VB.Net
  • HTML
  • C/C++

Share this post


Link to post
Share on other sites
ribeiro55

Sendo assim, e tendo em conta que não sabes o que é a classe Encoding, que biblioteca estás a usar para as compressões?


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
ribeiro55

Eh pa, desculpa, mas assim só me resta perguntar: foste tu quem fez a aplicação?


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
jpaulino

Praticamente...

Praticamente copiei tudo, querias dizer ;)

Começa por fazer coisas simples e não tentes entrar em coisas mais dificeis.

Share this post


Link to post
Share on other sites
jviana

Está bem, desculpem, têm alguma ideia de um projecto para fazer?

Cumps. J.Viana


Learning

  • VB.Net
  • HTML
  • C/C++

Share this post


Link to post
Share on other sites
ribeiro55

Não. O método save não usa codec JPEG por exemplo.

Vai-te sempre gravar um bitmap gigante.

Formato não implica compressão.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
BELGA

Não. O método save não usa codec JPEG por exemplo.

Vai-te sempre gravar um bitmap gigante.

Formato não implica compressão.

Olha que não... Experimenta.

Share this post


Link to post
Share on other sites
ribeiro55

Ahaha, boa!

Desde o aparecimento dessa classe, o overload mais simples não usava codec para compressão, a menos que fosse explicitamente delegado (em parte através de um outro overload do mesmo método) .

Pelos vistos a FW4 dá uso ao formato de imagem.

Ainda assim, com o método só por si, não tens acesso a todos os parâmetros de cada codec, mas já safa bastante bem.

Foi com vista a tapar este buraco que criei o iPIC.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.