/ / Por que GetThumbnailImage cria imagens borradas - c #, winforms

Por que o GetThumbnailImage cria imagens borradas - c #, winforms

Eu estou criando miniaturas de imagens. Eu tenho implementado a exibição de miniaturas de duas maneiras

1 - dada uma imagem, crie uma nova miniatura usando o método acima.

2 - dada uma imagem, pegue as dimensões,calcular as dimensões redimensionadas e, em seguida, definir isso como as dimensões da PictureBox. O PictureBox está definido para o modo de zoom automático, por isso, redimensionará a imagem para 1/4.

Ambos os métodos geram polegares que são 1/4 dotamanho original da imagem de entrada (somente para exibição, não estou preocupado em salvar ou trabalhar com a imagem), mas o segundo método produz uma miniatura muito mais clara, embora eu ache que ela usaria mais memória, já que não acredito em aumentar o controle realmente afeta a imagem.

Por que a miniatura resultante fica muito embaçada quando GetThumbnailImage é usado?

Respostas:

0 para resposta № 1

Veja as observações no documentação:

Se o Imagem contém uma imagem em miniatura incorporada, esse método recupera a miniatura incorporada e a dimensiona para o tamanho solicitado. Se o Imagem não contém uma imagem em miniatura incorporada, esse método cria uma imagem em miniatura redimensionando a imagem principal.

o GetThumbnailImage O método funciona bem quando a imagem em miniatura solicitada tem um tamanho de cerca de 120 x 120 pixels. Se você solicitar uma imagem em miniatura grande (por exemplo, 300 x 300) de uma Imagem que tem uma miniatura incorporada, pode haverperda perceptível de qualidade na imagem em miniatura. Pode ser melhor dimensionar a imagem principal (em vez de redimensionar a miniatura incorporada) chamando DrawImage método.

Por isso, pode acontecer de você ter uma miniatura embutida em escala maior.